IDEA使用jdbc连接数据库(2)
结合上篇jdbc连接数据进行增删改查记忆 statement
为什么使用preparedstatement?不需要拼接sql字符串,爽,方便;防止sql注入;效率更高,因为预编译sql
上次是使用加载配置文件进行优化的,今天是使用连接池,连接池有DBCP,c3p0等等,这次我们使用DBCP
项目基本结构使用dao层:
见名知义,这次主要是util和实现类的改动,直接上代码
private static Properties p = new Properties();
private static DataSource ds = null;
static {
try {
//获取配置文件并加载流
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream(“jdbc.properties”);
p.load(stream);
//通过工厂创建DataSource 对象,之后获取连接,就可以直接使用ds.getConnection()获取连接
ds = BasicDataSourceFactory.createDataSource§;
} catch (Exception e) {
e.printStackTrace();
}
}
连接mysql,和之前statement的区别就只有这儿,之前用配置文件获取连接信息,这里用连接池获取配置信息,接下来就是增删改查
增加的时候可以获取主键,用于保存下一个表做关联的
删除
修改
查询单条
查询全部
以上完成了CURD操作,总结一下,使用preparedStatement的语法:
String sql = select * from t_student where username = ?(?占位)
PreparedStatement ps = cn.preparedstatement(sql) 需要传入sql语句
ps.setobj(1,具体值); 放置值从1开始
ps.executeQuery(); 不需要传入sql
再次强调结合上一篇一起记忆,statement语法:
Statement = cn.createStatement
Statement.execute(sql)
如果是DML即增删改,执行:ps.executeUpdate();
如果是DQL即查询,执行:ps.executeQuery();
以上就是今天重点内容,相比statement,PreparedStatement 使用更多。掌握!