使用jdbc对数据库增删改查
1、新建一个 lesson02 的包
2、在src目录下创建一个db.properties文件,如下图所示:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcStudy?
useUnicode=true&characterEncoding=utf8&useSSL=true
username=root
password=123456
3、在lesson02 下新建一个 utils 包,新建一个类JdbcUtils
packagecom.kuang.lesson02.utils;
importjava.io.InputStream;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.Properties;
publicclassJdbcUtils {
privatestaticStringdriver=null;
privatestaticStringurl=null;
privatestaticStringusername=null;
privatestaticStringpassword=null;
static{
try{
//读取db.properties文件中的数据库连接信息
InputStreamin= JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");
Propertiesprop=newProperties();
prop.load(in);
//获取数据库连接驱动
driver=prop.getProperty("driver");
//获取数据库连接URL地址
url=prop.getProperty("url");
//获取数据库连接用户名
username=prop.getProperty("username");
//获取数据库连接密码
password=prop.getProperty("password");
//加载数据库驱动
Class.forName(driver);
}catch (Exceptione) {
thrownewExceptionInInitializerError(e);
}
}
// 获取数据库连接对象
publicstaticConnectiongetConnection() throwsSQLException{
returnDriverManager.getConnection(url, username,password);
}
// 释放资源,要释放的资源包括Connection数据库连接对象,负责执行SQL命令的Statement对象,存储查询结果的ResultSet对象
publicstaticvoidrelease(Connectionconn,Statementst,ResultSetrs){
if(rs!=null){
try{
//关闭存储查询结果的ResultSet对象
rs.close();
}catch (Exceptione) {
e.printStackTrace();
}
rs=null;
}
if(st!=null){
try{
//关闭负责执行SQL命令的Statement对象
st.close();
}catch (Exceptione) {
e.printStackTrace();
}
}
if(conn!=null){
try{
//关闭Connection数据库连接对象
conn.close();
}catch (Exceptione) {
e.printStackTrace();
}
}
}
}
使用statement对象完成对数据库的CRUD操作
1、插入一条数据
packagecom.kuang.lesson02;
importcom.kuang.lesson02.utils.JdbcUtils;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.Statement;
publicclassTestInsert {
publicstaticvoidmain(String[] args) {
Connectionconn=null;
Statementst=null;
ResultSetrs=null;
try{
//获取一个数据库连接
conn=JdbcUtils.getConnection();
//通过conn对象获取负责执行SQL命令的Statement对象
st=conn.createStatement();
//要执行的SQL命令
Stringsql="insert into users(id,name,password,email,birthday)
" +
"values(4,'kuangshen','123','24736743@qq.com','2020-01-
01')";
//执行插入操作,executeUpdate方法返回成功的条数
intnum=st.executeUpdate(sql);
if(num>0){
System.out.println("插入成功!!");
}
}catch (Exceptione) {
e.printStackTrace();
}finally{
//SQL执行完成之后释放相关资源
JdbcUtils.release(conn, st, rs);
}
}
}