Java JDBC基本操作

基本概念
------------------------------------------------------------
1、静态块:static{}                                     //执行优先于构造函数,只执行一次
2、加载类:Class.forName(PackagePath);                  //加载包路径下的类
3、连接类:Connection                                   //类,在java.sql.driver类下
4、连接url:"jdbc:oracle:thin@localhost:1521:ORCL","scott","tiger"
5、驱动包:ojdbc5.jar(oracle11g)
6、执行类:Statement类,在java.sql.Statement包下
7、结果集:ResultSet
8、集合泛型:限制集合中的存放类型
9、预处理:PreparedStatement类
10、批处理:Statement st = con.createNewStatement();st.addBatch(sql);at.executeBatch(sql);




使用方式
----------------------------------------------------------------------------------------------


1、导入数据库驱动包
--------------------------------------------------------------------------------------
ojdbc12.jar


2、加载oracle驱动:使用Class.forName()方法
--------------------------------------------------------------------------------------
static{
try{
Class.forName("oracle.driver.OracleDriver");
}catch(Exception e){
e.printStack();
}
}




3、获取数据库连接:使用Connection类中的方法


--------------------------------------------------------------------------------------
Connection con = DriverManager.getConnection();


4、执行sql语句:
--------------------------------------------------------------------------------------
Statement stat = con.createStatement();
        int ret = stat.executeUpdate(sql);      //执行增删改语句
ResultSet rs = stat.executeQuery(sql);  //执行查询语句
while(rs.next()){
   rs.getInt(1);     //拿第一列,数据类型为int
     rs.getString(2);  //拿第二列,数据类型为Stirng
   rs.getInt("pno"); //根据列名拿数据
}


-------------------------------------------------------------------------------------
PreparedStatement ps = con.preparedStatement("insert into usrInfo values(?,?,?,?,?)");
ps.setInt(1,1);     //替换第一个问号
ps.setString(2,1);  //替换第二个问号
ps.executedUpdate();
-------------------------------------------------------------------------------------
String sql1="";                 //批处理方式处理数据
String sql2="";
ps.addbatch(sql1);
ps.addbatch(sql2);
int[] result = ps.excuteBatch();//当返回值大于零,则执行成功
--------------------------------------------------------------------------------------
con.setAutoCommit(false);       //设置成手动事务提交
con.commit();                   //提交
con.rollback();                 //事务回滚


分层设计
-----------------------------------------------------------
1、获取数据库连接及其连接的关闭等操作可以封装在一个Dao类当中
2、每个数据库表都可以在程序中封装为一个实体类
3、每个实体类都封装在与实体类同名的Dao类当中




注意事项
-----------------------------------------------------------
1、Connection类和Statement类需要关闭
2、ResultSet类也需要关闭
3、Statment类容易实现SQL注入,安全性不佳,所以使用PreparedStatement比较安全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值