JDBC是什么?
jdbc:Java DataBase Connectivity,java数据库的连接
用来连接java和数据库操作的桥梁(使用java进行crud操作)
(使用前要导入对应数据库的jar包到项目中)
1、jdbc的操作步骤
第一步,加载数据库的驱动
DriverManager里面registerDriver(Driver driver)(由源码知,会加载两次)
Class.forName(className)(推荐使用)
第二步,创建与数据库的连接
DriverManager里面getConnection(String url, String user, String password)
第三步,编写sql语句
第四步,执行sql语句
Statement里面executeQuery(String sql)
第五步,释放资源(关闭连接)以免资源被占用造成数据库的死锁
**关闭的原则:谁最先打开,谁最后关闭
**关闭资源要写在finally中
2、jdbc的Connection对象
2.1 创建statement对象
Statement createStatement()
2.2 创建预编译对象 PreparedStatement
PreparedStatement prepareStatement(String sql)
3、jdbc的Statement对象
3.1 执行查询操作方法
executeQuery(String sql) ,返回查询的结果集ResultSet
3.2 执行增加 修改 删除的方法
executeUpdate(String sql) ,返回成功的记录数int
3.3 执行sql语句的方法
execute(String sql) ,返回是布尔类型boolean ,如果执行的是查询的操作返回true,否则返回的false
3.4 执行批处理的方法
addBatch(String sql):把多个sql语句放到批处理里面
executeBatch():执行批处理里面的所有的sql,如果全部命令执行成功,则返回数组int[]
4、jdbc的ResultSet对象
遍历结果集 next() 和 getXXX
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int price = rs.getInt("price");
System.out.println(id+"-"+name+"-"+price);
}
5、jdbc的PreparedStatement对象
***常用方法和Statement相同只不过参数列表为空
防止sql的注入
步骤:
第一步,加载驱动,创建数据库的连接
第二步,编写sql
第三步,需要对sql进行预编译
第四步,向sql里面设置参数
第五步,执行sql
第六步,释放资源
代码:
//使用工具类得到数据库的连接
conn = MyJdbcUtils.getConnection();
//编写sql
String sql = "select * from user where username=? and password=?";
//对sql进行预编译
PrepareStatement psmt = conn.prepareStatement(sql);
//设置参数
psmt.setString(1, username);
psmt.setString(2, password);
//执行sql
ResultSet rs = psmt.executeQuery();
if(rs.next()) {
System.out.println("login success");
} else {
System.out.println("fail");
}
jdbc:Java DataBase Connectivity,java数据库的连接
用来连接java和数据库操作的桥梁(使用java进行crud操作)
(使用前要导入对应数据库的jar包到项目中)
1、jdbc的操作步骤
第一步,加载数据库的驱动
DriverManager里面registerDriver(Driver driver)(由源码知,会加载两次)
Class.forName(className)(推荐使用)
第二步,创建与数据库的连接
DriverManager里面getConnection(String url, String user, String password)
第三步,编写sql语句
第四步,执行sql语句
Statement里面executeQuery(String sql)
第五步,释放资源(关闭连接)以免资源被占用造成数据库的死锁
**关闭的原则:谁最先打开,谁最后关闭
**关闭资源要写在finally中
2、jdbc的Connection对象
2.1 创建statement对象
Statement createStatement()
2.2 创建预编译对象 PreparedStatement
PreparedStatement prepareStatement(String sql)
3、jdbc的Statement对象
3.1 执行查询操作方法
executeQuery(String sql) ,返回查询的结果集ResultSet
3.2 执行增加 修改 删除的方法
executeUpdate(String sql) ,返回成功的记录数int
3.3 执行sql语句的方法
execute(String sql) ,返回是布尔类型boolean ,如果执行的是查询的操作返回true,否则返回的false
3.4 执行批处理的方法
addBatch(String sql):把多个sql语句放到批处理里面
executeBatch():执行批处理里面的所有的sql,如果全部命令执行成功,则返回数组int[]
4、jdbc的ResultSet对象
遍历结果集 next() 和 getXXX
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int price = rs.getInt("price");
System.out.println(id+"-"+name+"-"+price);
}
5、jdbc的PreparedStatement对象
***常用方法和Statement相同只不过参数列表为空
防止sql的注入
步骤:
第一步,加载驱动,创建数据库的连接
第二步,编写sql
第三步,需要对sql进行预编译
第四步,向sql里面设置参数
第五步,执行sql
第六步,释放资源
代码:
//使用工具类得到数据库的连接
conn = MyJdbcUtils.getConnection();
//编写sql
String sql = "select * from user where username=? and password=?";
//对sql进行预编译
PrepareStatement psmt = conn.prepareStatement(sql);
//设置参数
psmt.setString(1, username);
psmt.setString(2, password);
//执行sql
ResultSet rs = psmt.executeQuery();
if(rs.next()) {
System.out.println("login success");
} else {
System.out.println("fail");
}