##JDBC
1.概念:Java database Connectivity java 数据库连接, java语言操作数据库
JDBC本质:其实就是官方(sun公司)定义的一套操作所有关系型数据库的规则,及接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包
。我们可以使用这套接口(jdbc)编程,真正执行的代码是驱动jar包中的实现类
2.快速入门:
步骤:
1.导入驱动jar包
复制jar包到项目的libs目录下
右键-->Add As Library
2.注册驱动
3.获取数据库连接对象 Connection
4.定义sql语句
5.获取执行sql语句的对象 Statement
6.执行sql,接受返回结果
7.处理结果
8.释放资源
3.各个对象:
1.DriverManager:驱动管理
功能:
1.注册驱动
写代码使用:Class.forName("com.mysql.jdbc.Driver");
注意:mysql5之后的驱动jar包可以省略注册驱动的步骤。
2.获取数据库连接
方法:static Connection getConnrection(String url,String password)
参数:url:指定连接的路径
语法:jdbc:mysql://ip地址(域名):端口号 / 数据库名称
例子:jdbc:mysql://localhost:3306/db3
细节:如果连接的是本机的mysql服务器,并且端口为3306,则ip地址和端口号可以省略
2.Connection:据库连接对象
1.功能:
1.获取执行sql的对象
Statement createStatement()
PreparedStatement prepareStatement (String sql)
2.事务管理:
开启事务: void setAutoCommit(bolean autoCommit) :调用该方法设置参数为false,即开启事务
提交事务:commit()
回滚事务:rollback()
3.Statement:执行sql的对象
1.执行sql
boolean execute(String sql):可以执行任意的sql 了解
int executeUpdate(String sql):执行的是dml(insert、update、delete)语句ddl(create,alter,drop)语句
返回值:影响的行数 返回值>0则执行成功,反之,则失败
ResultSet execute Query(String sql):执行DQL(select)语句
4.ResultSet:结果集对象
next();游标向下移动一行
getxxx参数:获取数据
xxx:代表数据类型 如:int getInt() ,String getString();
参数:int :代表列编号。如: getDouble("balance");
String :代表列表名称。 如:getDouble("balance")
使用步骤:
游标向下移动一行
判断是否有数据
获取数据
例;
while(rs.next()){
int id = rs.getInt(1);
。。。。。
}
5.PreparedStatement:执行sql的对象
1.sql注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全问题
1.输入用户名随便,输入密码:a' or 'a'='a
2.sql:select *from user where username ='dsfdsf'and password='a' or 'a'='a';
2.解决sql注入问题:使用PreparedStatement对象来解决
3.预编译sql:使用占位符
定义sql时使用?
获取执行sql的对象PreparedStatement ,使用Connection.preparedStatement(sql);
给?赋值:
方法:setXxx(参数1,参数2)
参数1:?的位置编号 从1开始
参数2:?的值
执行sql
抽取工具类:JDBCUtils
目的:简化书写
分析:
1.注册驱动
2.获取连接
需求:不想传递参数,还得保证工具类的通用性
解决:配置文件
1.获取类加载器 ClassLoader();
2.调用getResource(配置文件名)
3.调用getPath();
4.将文件放入property集合中
3.释放资源
java事务管理:
con.setAutocommit(false);
…
提交事务commit
回滚事务
数据库连接池:
C3P0
Druid
实现:标准接口DataSource javax.sql 包下的
方法:获取连接:getConnection()
归还连接:Connection.close()
步骤:
1.导入jar包(3个)c3p0-....-....-.jar mchange-commons-java-..-..-.jar 驱动jar包
2.定义配置文件
名称:c3p0.properties 或者 c3p0-config.xml
路径:直接将文件放在sc目录下即可
创建核心对象 数据库连接池对象 new ComboPooledDataSource()
获取连接:getConnection
spring JDBC
Spring提供的JDBC的简单封装提供了一个JDBCTemplate对象简化JDBC的开发