2021-07-15

 java中的JDBC高级知识

          PreparedStatement

PreparedStatement处理执行语句)相比其父类 Statemen主要有以下几个优点
1:可以防止sQL注入
2:在特定的驱动数据库下相对效率要高
3:不需要频繁编译因为已经预加载了
它有三种执行方式:
pstm.executeUpdate()执行更新语句,例如 Insert, update, delete语句,返回受影啊的行数
pstm.executeQuery()执行查询语句,返回得到的结果集
pstm.execute()可以执行任意的sQL语句,如果数据库返回的第一个结果是结果集,则方法返回true,如果返回的数字,即受影响行数或者没有返回值,则方法返回fase

我们发现和 Statement用法类似,在 PreparedStatement中我们可以设定参数,并且可以防止SQL注入的攻击
4:使用 Statement访数据
例子:
4:使用Statement访问数据库
PreparedStatement ps =conn.preparestatement(sqL);
//4.2:赋值
ps.setInt(1,2);
5:使用 Resultset或者int接收访问数据库的反馈结果
ResultSet rs= ps.executeQuery();

                事务处理

默认情况下,当我们获取一个conn连接时,这个连接默认是自动提交的,也就是说,我们每执行一条sql语句,均当作一个完整的独立的事务被执行,每个 statement.execute()方法的调用都是如同一条新的 begin transaction命令开始,并由一条commit命令来提交结束。我们可以通过 connection的 getAutoCommit()来查看当前的自动提交状态,也可以使用
setAutoCommit(false)来设置手动提交,具体的使用方法有以下几部:
.设置事务的起点:
。 con.setAutoCommit(false);/设置手动提交事务
.设置事务提交还是回滚
。con.commit();提交事务
。con.rollback();回滚事务

                     批处理

JDBC APl2.2开始,提供了对批处理更新的支持,这个特性是我们可以再一次数据库请求中执行多个更新语句( Insert, update或者 delete)。对于存在大量更新语句的情况下,采用批处理可以明显提高系统性能。

使用批处理时,可以使用 PreparedStatement提供的 addBatch()方法将本条语句加入队列,所有预备语句加入完毕后,使用 executeBatch()方法一次执行这些语句,减少了数据库的负担。
批处理更新语句执行后,返回每条语句的执行结果,由于是更新语句,返回的是int值,所以多条语句将返回一个int的数组。
需要注意的是,由于批处理往往代表一个完整的操作,所以必须使用事务

                 properties文件

Properties类这个类在java.util包下它提供了属性集的读取,其中属性集指属性名,属性值的组合字符串集合,类似于我们的学习的 key-value结构。这个类可以直接读取文件

例如:
在测试类同路径下新建一个 info. properties文件内容如下:
1driver=com. microsoft.sqlserver.jdbc. SQLServerDriver

2url=jdbc: sqlserver://127.0.0.1: 1433; databaseName=school

3 name=sa
4 pwd=1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值