目录
一,具体步骤(以查询为例)
一,导入jar包
根据连接数据库的不同选择不同的jar包,导入当前项目种
二,注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");//需要异常处理
三,创建链接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:端口号/数据库名", "用户名","密码");
四,输入sql语句(用占位符占位)
String sql = "SELECT * FROM student WHERE name = ? AND age = ?;
占位符的作用:防止sql注入
五,预执行
PreparedStatement pr = conn.prepareStatement(sql);
六,为占位符符赋值
// pr.setString(第几个占位符,内容);
pr.setString(1,"张三");
pr.setString(2,18);
七,执行
//re即为查询到的结果集
ResultSet re = pr.executeQuery();
八,关流
//先创建的流后关,后创建的流先关
if(re != null){
re.close();
}
if(pr != null){
pr.close();
}
if(conn != null){
conn.close();
}
二,增删改与查询的区别:
第七步
查询为: ResultSet re = pr.executeQuery(); //返回值为结果集
增删改: int result = pr.executeUpdate(); //返回值为受影响条数
第八步:
查询需要关闭 ResultSet 流,而增删改不需要
三,完整代码:
查询:
public List<Brand> sel(){
Connection conn = null;
PreparedStatement pr = null;
ResultSet re = null;
List<Student> stuList = new ArrayList<Student>();
try {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//创建链接
conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/mytest","root","123456");
//占位符
String sql = "SELECT * FROM student WHERE score > ? and age = ?";
//预执行
pr = conn.prepareStatement(sql);
//给占位符赋值
pr.setInt(1,60);
pr.setInt(2,18);
//执行
re = pr.executeQuery();
//取出结果集
while (re.next()){
//取出查询结果
String name = re.getString("name");
String sex = re.getString("sex");
//将结果赋值给对象
Student stu = new Student();
stu.setName(name);
stu.setSex(money);
//将对象加入结果集合
stuList.add(stu);
}
}catch (Exception e){
System.out.println("出现异常");
}
finally {
// 关流
try {
if(re != null){
re.close();
}
if(pr != null){
pr.close();
}
if(conn != null){
conn.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
return stuList;
}
增删改:
public int sel(){
Connection conn = null;
PreparedStatement pr = null;
int result = 0;
try {
//注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//创建链接
conn = DriverManager.getConnection
("jdbc:mysql://localhost:3306/mytest","root","123456");
//占位符
String sql = "INSERT INTO student (name,age) VALUES (?,?);";
//预执行
pr = conn.prepareStatement(sql);
//给占位符赋值
pr.setString(1,"张三");
pr.setInt(2,20);
//执行
result = pr.executeUpdate();
}catch (Exception e){
System.out.println("出现异常");
}
finally {
// 关流
try {
if(pr != null){
pr.close();
}
if(conn != null){
conn.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
//返回受影响条数
return result;
}