概述
用框架用习惯了,以前最初级的连接数据库方式都生疏了,接下来总结一下最初级的Java连接数据库以及操作
先总结以下Java连接数据库的步骤(orale),然后在举例子操作Dao层
1.加载驱动:
Class.forName(“oracle.jdbc.driver.OracleDriver”);
2.获取连接填写数据库名密码等:
Connection c=DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”, “scott”, “scott”);
3.创建sql语句
String sql = “insert into bankst(id,username,userpwd,price) values(?,?,?,?) “;
4.创建statement对象或者创建preparedStatement对象
Statement st=conn.createStatement();
PreparedStatement ps = conn.prepareStatement(sql);
5.执行sql语句
st.execute(sql);
ps.executeUpdate();
6.处理结果集
使用JavaBean类保存结果
ResultSet rs = ps.executeQuery();
while (rs.next()) {
cusValue cv = new cusValue(rs.getString(“cusid”), rs.getString(“cusname”),
rs.getDate(“indate”),rs.getDate(“outdate”), rs.getString(“roomnumber”),rs.getDouble(“price”)
);
7.关闭连接
c.close
在程序中数据库层:编写连接和关闭的操作,main主函数是为了测试数据库是否正确连接
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class jdbc {
public static void main(String[] args) {
System.out.println(jdbc.getConn());
}
public static Connection getConn(){
Connection c = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
c = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl", "scott", "scott");
} catch (Exception e) {
e.printStackTrace();
}
return c;
}
public static void closeConn(Connection c){
if(c!=null){
try {
c.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Dao层操作:
package Dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import Value.loginValue;
import jdbc.jdbc;
/**
* 1.PreparedStatement ps = conn.prepareStatement(sql);这个语句是实现预编译的,对于批量处理可以大大提高效率.也叫JDBC存储过程
2.当然也可以使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。
PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。
3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得
4.可以通过ps.set(1,数值)进行赋值,注意是从1开始的,而不像hibernate的p=Session.createSQLQuery(sql);然后再p.setInteger(0, bv.getId());
是从0开始的
* @author lenovo
*
*/
public class userDao {
/**
* 注册 即增加操作
* @param lv
* @return
*/
public boolean zhuce(loginValue lv){
Connection conn=null;
try{
conn=jdbc.getConn();
String sql = "insert into htuser values(?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, lv.getUsername());
ps.setString(2, lv.getUserpwd());
ps.executeUpdate();
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
jdbc.closeConn(conn);
}
return false;
}
/**
* 登录即查找操作,只不过加了判断
* @param username
* @param userpwd
* @return
*/
public boolean login(String username,String userpwd){
Connection conn=null;
try{
conn=jdbc.getConn();
String sql="select *from htuser where username=? and userpwd=? ";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2,userpwd);
ResultSet rs = ps.executeQuery();
if(rs.next())
return true;
}catch(Exception e){
e.printStackTrace();
}finally{
jdbc.closeConn(conn);
}
return false;
}
/**、
* 查找全部
* @return
*/
public List<loginValue> selectAll(){
List<loginValue> lv = new ArrayList<loginValue>();
Connection conn=null;
try{
conn=jdbc.getConn();
String sql="select *from htuser";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
loginValue l = new loginValue(rs.getString("username"),rs.getString("userpwd"));
lv.add(l);
}
}catch(Exception e){
e.printStackTrace();
}finally{
jdbc.closeConn(conn);
}
return lv;
}
/**
* 按名字删除
* @param username
* @return
*/
public boolean deleteUser(int username){
Connection conn=null;
try{
conn=jdbc.getConn();
String sql="delete from htuser where username=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1, username);
boolean b=ps.execute();
if(!b){
return true;
}
}catch(Exception e){
e.printStackTrace();
}finally{
jdbc.closeConn(conn);
}
return false;
}
/**
* 修改操作
* @param lv
* @return
*/
public boolean alterUser(loginValue lv){
Connection conn=null;
try{
conn=jdbc.getConn();
String sql="update htuser set userpwd=? where username=?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1, lv.getUsername());
ps.setString(2, lv.getUserpwd());
boolean b=ps.execute();
if(!b){
return true;
}
}catch(Exception e){
e.printStackTrace();
}finally{
jdbc.closeConn(conn);
}
return false;
}
}
就是这些了,忘了就看看这个,应该可以想起来,最后大家新年快乐,嘎嘎
最后
以上就是还单身裙子为你收集整理的原始的jdbc连接数据库以及操作(小总结)的全部内容,希望文章能够帮你解决原始的jdbc连接数据库以及操作(小总结)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复