jdbc
JDBC
概念:java语言操作数据库。本质:定义了操作所有关系型数据库的规则(接口)。各个数据库厂商去实现接口,提供数据库驱动jar包。我们可以使用这套接口编程,真正执行的代码时驱动jar包中的实现类。
快速入门:
1.导入驱动jar包
复制到libs下,右键libs,add as library
2.注册驱动
3.获取数据库连接对象 Connection
4.定义sql
5.获取执行sql语句的对象 Statement
6.执行sql
7.处理结果
8.释放资源
详解各个对象
1.DriverManager:驱动管理对象
注册驱动:Class.forName("com.mysql.cj.jdbc.Driver");//可省略
获取数据库连接:
URL:jdbc:mysql://localhost:3306/soccer?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
user:用户名
password:密码
2.Connection:数据库连接对象
Connection con = DriverManager.getConnection(url,user,password);
管理事务:
开启事务:setAutoCommit();
提交事务:commit();
回滚:rollback();
3.Statement:执行Sql的对象
boolean execute(String sql); 可执行任意sql语句
int executeUpdate(String sql); 执行DML,DDL。返回值:影响的行数
ResultSet executeQuery(String sql); 执行DQL语句
4.ResultSet:结果集对象,封装查询结果
next(); //加判断是否为最后一行
getxxx(); //xxx代表数据类型 如:getInt(); getString();
参数:int 代表列的编号,从1开始; 如:getString(1);
String 代表列名,如:getString("name");
注意:使用步骤:
游标向下移动,判断是否有数据,获取数据
5.PreparedStatement:执行Sql的对象
SQL注入问题:
1.输入用户随便。
2.拼接sql时有一些sql特殊关键字参与。
预编译的sql用?作为占位符
抽取jdbc工具类:JDBCUtils
抽取注册驱动
抽取获取连接对象
通过配置文件解决:jdbc.properties
url=
user=
password=
抽取方法释放资源
JDBC控制事务
数据库连接池
概念:其实是一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问之后,会将连接对象归还容器。
优势:访问高效,节约资源
实现:
1.标准接口:DataSource
获取连接:getConnection();
归还连接:Connection.close();
2.由数据库厂商来实现
1.C3P0
2.Druid
C3P0连接池技术
Druid连接池技术
1.导入jar包
2.配置文件:
是properties形式
3.获取数据库连接池对象:通过工厂类来获取 DruidDataSourceFactory
4.获取连接:getConnection();
定义工具类,提供静态代码块加载配置文件,初始化连接池对象,通过数据库连接池获取连接,释放资源,获取连接池的方法。
Spring JDBC
Spring框架提供的JDBC封装。提供了一个JDBCTemplate对象简化JDBC的开发。
1.导入jar包
2.创建jdbcTemplate对象。依赖于数据源DataSource
3.调用JDBCTemplate的方法完成crud操作
update(); 执行DML语句,增删改
queryForMap(); 查询结果封装为map集合
queryForList(); 查询结果封装为list集合
query(); 查询结果封装为JavaBean对象
queryForObject(); 查询结果封装为对象
浙公网安备 33010602011771号