1.JDBC概述
-
持久化:把数据保存到可掉电式存储设备中以供之后使用
-
JDBC是java访问数据库的基石,Hibernate、MyBatis等只是更好的封装了JDBC。
-
JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,
因此需要给开发人员使用的API和数据库厂商提供的实现
- JDBC程序编写步骤
2.获取数据库连接
-
Driver接口
java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。提供给数据库厂商使用的,不同数据库厂商提供不同的实现。
而在程序中由(java.sql.DriverManager)去调用这些Driver实现类 -
加载与注册JDBC驱动
加载:Class.forName(“com.mysql.jdbc.Driver”);
注册:DriverManager.registerDriver(com.mysql.jdbc.Driver)
——注册可以不用显示调用,DriverManager中实现的注册 -
URL
JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。
-
user和password连接数据库的用户名和密码
-
实现连接
@Test
public void testConnection5() throws Exception {
//1.加载配置文件
InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties pros = new Properties();
pros.load(is);
//2.读取配置信息
String user = pros.getProperty("user");
String password = pros.getProperty("password");
String url = pros.getProperty("url");
String driverClass = pros.getProperty("driverClass");
//3.加载驱动
Class.forName(driverClass);
//4.获取连接
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
}
jdbc.properties配置文件
user=root
password=123456
url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.jdbc.Driver
3.使用PreparedStatement实现CRUD操作
- 操作和访问数据库
- Statement:执行静态 SQL 语句,返回结果对象
——需要拼串,存在SQL注入问题 - PrepatedStatement:预编译SQL语句,存储在对象中
——预编译SQL语句,防止SQL注入,编译后的代码会缓存下来 - CallableStatement:执行SQL存储过程
- PreparedStatement实现增、删、改操作
//通用的增、删、改操作(体现一:增、删、改 ; 体现二:针对于不同的表)
public void update(String sql,Object ... args){
Connection conn = null;
PreparedStatement ps = null;
try {
//1.获取数据库的连接
conn = JDBCUtils.getConnection();
//2.获取PreparedStatement的实例 (或:预编译sql语句)
ps = conn.prepareStatement(sql);
//3.填充占位符
for(int i = 0;i < args.length;i++){
ps.setObject(i + 1, args[i]);<