JDBC java数据库连接
流程:
1.导入驱动jar包
2.注册驱动
3.获取数据库连接对象 connection;
4.获取执行sql语句的对象 statement
5.定义sql语句;
6.执行sql,接收返回结果
7.处理结果
8.释放资源;
一:DriverManager:驱动管理对象
static void registerDriver(Driver driver)
写代码使用: Class.forName("com.mysql.jdbc.Driver");
通过查看源码发现:在com.mysql.jdbc.Driver类中存在静态代码块
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
获取数据库连接
方法: static Connection getConnection(String url,String user,String password )
二:Connection :数据库连接对象
1.获取执行sql的对象:
Statement createStatement();
PreparedStatement preparestatement(String sql);
2.管理事务:
①开启事务:setAutoCommit(boolean autoCommit):
调用该方法设置参数为false,即开启事务
②提交事务:commit();
③回滚事务:rollback();
三:Statement: 执行sql的对象 (落后的)
1.执行sql
①boolean execute(String sql):可以执行
② int executeUpdate(String sql) :
执行DML(insert、update、delete)语句、
DDL(create,alter、drop)语句
ResultSet executeQuery(String sql) :执行DQL(select)语句
四:ResultSet:结果集对象 封装查询结果
bollean next():
游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),
如果是,则返回false,如果不是则返回true
getXxx(参数):获取数据
Xxx:代表数据类型 如 int getInt(),
参数:
1.int 代表列的编号 ,从1开始 如 getString(1)
2.String:代表列的名称 如:getString("name")
使用步骤:
1. 游标向下移动一行
2. 判断是否有数据
3. 获取数据
(类似于迭代器)
五:preparedStatement : 执行sql语句的对象(常用的)
定义sql语句是如果要键盘录入,则用占位符
如:select * from user where username = ? and password = ?;
获取执行sql语句的对象:
PreparedStatement Connection.prepareStatement(String sql)
给?赋值:
方法: setXxx(参数1,参数2)
参数1: ?的位置编号 从1开始
参数2: ?的值
好处:
1. 可以防止SQL注入
2. 效率更高
封装JDBC工具类
是一种思想
几个重点:
获取src路径下的文件的方式--->ClassLoader 类加载器
(通过类名的class文件.getClassLoader() 获取当前类所在位置src路径下文件的路径)
lassLoader classLoader = JDBCUtils.class.getClassLoader();
URL res = classLoader.getResource("jdbc.properties");
String path = res.getPath();
JDBC 控制事务:
使用Connection对象来管理事务
开启事务:setAutoCommit(boolean autoCommit )
设置参数为false 即开启事务
提交事务:commit()
回滚事务:rollback()