师承康师傅, 学完总结一下
环境: IDEA, MySQL 8.0, JDK8
首先得安装MySQL 和下载MySQL的jar包
见我之前的教程:
1.下载dbutils 和logging jar包
DbUtils – Download Apache Commons DbUtils
Apache Commons Logging - Download Apache Commons Logging
找到这两个jar包
2.右键设置为模块库
3.数据库的准备
比如说我们想查询 customers表下的 id=23号的同学
4.代码演示
jdbc配置文件
user=root
password=admin
url=jdbc:mysql://localhost:3306/test
driverClass=com.mysql.cj.jdbc.Driver
封装的工具类
public class JDBC_Utils {
static InputStream is;
static Connection connection;
public static Connection getConnection() throws Exception {
//1.读取配置文件中的4个基本信息
is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
Properties pros = new Properties();
pros.load(is);
String user = pros.getProperty("user");
String password = pros.getProperty("password");
String url = pros.getProperty("url");
String driverClass = pros.getProperty("driverClass");
//2.加载驱动到内存中, Driver类会用静态代码块来尝试加载驱动
Class.forName(driverClass);
//3.获取连接
connection = DriverManager.getConnection(url, user, password);
return connection;
}
/**
* 负责关闭该类创建的流
*/
public static void closeIs() {
close(is);
}
/**
* 关闭流函数升级版,可以看我另一篇如何优雅关闭流的文章
*/
public static void close(AutoCloseable... t) {
for (AutoCloseable closeable : t) {
if (closeable != null) {
try {
closeable.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
JDBC_Utils4 是我封装的获取数据库连接的工具类
大家可以用常规方式获取连接
可用上面代码替代
//BeanHandler:是ResultSetHandler接口的实现类,用于封装表中的一条记录。
@Test
public void QueryTest() {
Connection cn = null;
try {
QueryRunner runner = new QueryRunner();//用于查询数据
cn = JDBC_Utils4.getConnection();//工具类获取连接,也可以手动获取
String sql = "select id,name,email,birth from customers where id = ?";
ResultSetHandler<Customer> handler = new BeanHandler<>(Customer.class);
Customer customer = runner.query(cn, sql, handler, 23);
//连接,SQL,处理类对象,占位符
System.out.println(customer);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBC_Utils4.closeIs();//关闭jdbc工具类里面的inputstream流
JDBC_Utils4.close(cn);//关闭连接
}
}