前言
本文将会用IntelliJ IDEA演示如何使用JDBC技术连接并操作数据库,可以当作模板使用。
使用步骤
1.下载Jar包
访问Maven官网下载,这里使用mysql-connector-java8.0.19为例,点击右边跳转下载
2.导入Jar包
3.使用JDBC修改数据库的内容
这里演示将db1数据库中user表中id=1的age从10改为20
执行代码前的数据库情况
跑一下项目看结果
执行代码后的数据库情况
代码如下(自取修改):
public class JDBCDemo1 {
public static void main(String[] args) throws Exception{
//1.注册驱动(反射的方式)
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取数据库连接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/db1?serverTimezone=UTC","root","root");
//3.创建执行sql的对象
Statement stmt= conn.createStatement();
//4.定义sql语句
String sql="update user set age=20 where id=1";
//5.执行sql
int index = stmt.executeUpdate(sql);
//6.处理获取
System.out.println(index);
//7.释放资源(先开后关)
stmt.close();;
conn.close();
}
}
考虑异常处理的最终版
public class JDBCDemo1 {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
//1.注册驱动(反射的方式)
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取数据库连接
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db1?serverTimezone=UTC","root","root");
//3.创建执行sql的对象
stmt = conn.createStatement();
//4.定义sql语句
String sql="update user set age=20 where id=1";
//5.执行sql
int rs = stmt.executeUpdate(sql);
//6.处理获取.遍历结果集,并获取查询结果
System.out.println(rs);
}catch(Exception e) {
e.printStackTrace();
}finally {
//7.释放资源(先开后关)
if(stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
stmt = null;
}
}
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
conn = null;
}
}
}
}
}
4.思考
用JDBC对数据库进行操作就得经过上面一系列的操作:
1.注册驱动
2.获取数据库连接
3.创建执行sql的对象
4.定义sql语句
5.执行sql
6.处理获取
7.释放资源(先开后关)
这样会造成什么问题?
1.数据库连接创建、释放十分频繁,造成资源浪费从而影响系统性能。
解决办法:使用数据库链接池就能解决。改进方法
2.需求发生改变的时候需要修改SQL语句就得改代码,不易维护。
解决办法:让SQL可以动态的发生改变
那有什么办法可以一口气解决JDBC上面两个问题的?
答:使用Mybatis框架