SQL注入:拼接sql时,SQL特殊关键字,产生安全性问题,使用预编译SQL语句消除安全性问题。
预编译SQL语句变量使用占位符(?)替代,预编译SQL语句PreparedStatement,由连接connection获得
preparedstatement方法,setXxx(占位符索引,Xxx值),executeupdate(SQL),executeQuery()
JDBC控制事务:开启事务connection.setAutoCommit(false),false代表开启事务,在执行SQL之前开启事务
提交事务connection.commit,所有SQL执行完毕之后提交事务
滚回事务connection.rollback,在catch之中回滚事务
数据库连接池:一个容器集合,存放数据连接的容器,好处:1.节约资源 2.用户访问高效
Datasource接口,由各个厂商去实现
连接池技术:1.C3P0 2.Druid Alibaba实现
连接池都会做1.getconnection获取连接 2.close归还连接
C3P0:1.导入jar包
2.定义配置文件,c3p0.properties或者c3p0-config.xml
3.获取连接池对象
Datesource ds = new ComblepoolDatesource;
druid:1.导入jar包
2.定义配置文件--是properties形式的--可以叫任意名称,可以放在任意目录下
3.加载配置文件,获取连接池对象--
DataSource ds = DruidDataSourceFactory.createDataSource(properties);
Spring JDBC:JDBCtemplate
1.导入jar包
2.创建jdbctemplate对象,依赖于DataSource
jdbcTemplate tp = new jdbcTemplate(Datasource);
3.用jdbctemplate完成增删改查
.update
.queryformap()
.queryforlist()
.query()--封装为java对象 参数Rowmapper,一般使用BeanpropertyRowmapper实现类
new BeanpropertyRowmapper <对象类>(对象类.class)
|
|