每日练习:jdbc连接数据库
1、准备工作
构建一个SpringBoot项目,引入mysql依赖和druid连接池的依赖。如下图
引入jpa依赖,是因为在启动的时候,druid中使用了JPA,所以防止报错,引入jpa依赖。
2、DBHelper工具类
先编写一个获取数据库连接对象的方法,注意MySQL8.0之后的类名使用com.mysql.cj.jdbc.Driver。
当使用完连接之后,记得关闭连接。
通过传入连接变量、sql语句,和sql语句所需的赋值变量来调用查询数据的方法。
修改方法同理。
使用案例
查询相同名称的对象返回json对象到页面。
编写一个接受名称的controller。然后业务层调用持久层的方法。
持久层如下:
@Repository
public class FindDaoImpl implements FindDao {
@Value("${spring.datasource.url}")
private String user;
@Value("${spring.datasource.username}")
private String userName;
@Value("${spring.datasource.password}")
private String userPwd;
@Override
public List<Emp> findByName(String name) {
List<Emp> returnList = new ArrayList<>();
Connection conn = null;
try {
//1.建立连接
System.out.println(user);
System.out.println(userName);
System.out.println(userPwd);
conn = DBHelper.getConn(user,userName,userPwd);
String sql = "select * from emp";
List<Object> list = new ArrayList<>();
list.add(name);
//2.执行查询方法
ResultSet resultSet = DBHelper.queryDate(conn, sql, null);
while(resultSet.next()){
Emp emp = new Emp();
String id = resultSet.getString("id");
emp.setId(Integer.valueOf(id));
String ename = resultSet.getString("name");
emp.setName(ename);
String age = resultSet.getString("age");
emp.setAge(Integer.valueOf(age));
String birthday = resultSet.getString("birthday");
emp.setBirthday(birthday);
returnList.add(emp);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
//3.关闭连接
DBHelper.closeConn(conn);
}
return returnList;
}
}
从yml配置文件中获得建立连接所需的user、用户名和密码。然后建立连接,拼接好sql语句,需要注意的是sql语句中的?数目和传入方法的list集合中的元素数目对应。然后调用查询方法,遍历返回的结果集。获取指定字段的值,然后构建成一个对象,添加至集合中返回到前端。最后,在finally快中,关闭连接。
效果如下: