JDBC使用preparedStatement 预编译对象操作数据
1,导包
2 注册驱动
3 获取数据库连接对象
4 准备好sql语句 (预编译对象的sql语句可以使用占位符?表示)
5获取预编译对象 将sql语句发送给数据库
6 通过预编译对象参数赋值 (可以用set数据类型(占位符?的索引 赋值的内容 ))
7 释放资源
preparedStatement的优点
可以防止sql注入的问题 是动态的sql 效率更高
statement和preparedStatement的区别
前一个 执行sql语句每一次都要发一次 和后者相比 效率低
数据库性能的优化就是减少交互的次数
后者 预编译对象 执行参数化的sql 直接发送给数据库 数据库会进行校验(参数类型 以及参数字段是哪一列 然后保存在预编译对象中 可不断重新赋值) 效率高
利用Druid获取数据源的操作
1,导包
2,在连接池配置配置文件
eg:
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/my2203?useSSL=false username=root password=1234 initialSize=5 //初始化连接池数量 maxActive=10// 设置最大连接数 maxWait=3000// 最大等待时间为三秒
3,读取配置文件
eg:
InputStream inputStream = druidDemo.class.getClassLoader().getResourceAsStream("druid.properties");// 获取配置文件 Properties pro= new Properties(); pro.load(inputStream);//将配置文件读取到集合中 DataSource dataSource = DruidDataSourceFactory.createDataSource(pro);// 通过德鲁伊数据库工厂传入集合分件 创建数据源对象 、
也可以加入Threadlocal 执行
threadlocal 里有 set()添加连接
get()获取链接
remove()删除连接