代码实现
1.提取工具类
-
建立一个utils包
-
建立一个配置文件,增加耦合度
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3307/school?useUnicode=true&characterEncoding=utf8&useSSL=true
username=root
password=201314
-
建立工具类加载配置文件
package com.util;
import com.sun.xml.internal.fastinfoset.algorithm.IEEE754FloatingPointEncodingAlgorithm;
import jdk.nashorn.internal.ir.CatchNode;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class jdbcutils {
private static String driver=null;
private static String url=null;
private static String username=null;
private static String password=null;
static{
try{
//读取配置文件中的输入流
InputStream inputStream= jdbcutils.class.getClassLoader().getResourceAsStream("db.properties");
Properties properties=new Properties();//拿到输入流
properties.load(inputStream);//读出输入流
driver=properties.getProperty(driver);//获取配置文件中的对象
url=properties.getProperty(url);//获取配置文件中的对象
username=properties.getProperty(username);//获取配置文件中的对象
password=properties.getProperty(password;//获取配置文件中的对象
//驱动只要加载一次
Class.forName(driver);
}catch (Exception e){
e.printStackTrace();
}
}
//获取连接
public static Connection getConnection()throws SQLException {
return DriverManager.getConnection(url,username,password);
}
//释放资源
public static void release(Connection com, Statement st, ResultSet rs){
if(rs!=null){
try {
rs.close();
}catch (SQLException e){
e.printStackTrace();
}
}
if(st!=null){
try {
st.close();
}catch (SQLException e){
e.printStackTrace();
}
if(com!=null){
try {
com.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
}
}
}这些都是固定的唯一要改的就是sql语句
-
编写语句
-
插入语句
package com;
import com.sun.xml.internal.bind.v2.model.core.ID;
import com.util.jdbcutils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main(String[] args) {
Connection com=null;
Statement st=null;
ResultSet rs=null;
try {
com= jdbcutils.getConnection();//获取数据库连接
st= com.createStatement();//获取SQL执行对象
String sql="insert into user(`id`,`name`,`password`,`email`,`birthday`)" +
"values( `4`,`kai`,`123456`,`2537159362@qq.com`,`1998`)";
int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数
if(i>0){
System.out.println("插入成功!");
}
}catch (SQLException e){
e.printStackTrace();
}finally {
jdbcutils.release(com,st,rs);//释放资源
}
}
}-
删除语句
package com;
import com.sun.xml.internal.bind.v2.model.core.ID;
import com.util.jdbcutils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main(String[] args) {
Connection com=null;
Statement st=null;
ResultSet rs=null;
try {
com= jdbcutils.getConnection();//获取数据库连接
st= com.createStatement();//获取SQL执行对象
String sql="delete from user ehere id=1";
int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数
if(i>0){
System.out.println("删除成功!");
}
}catch (SQLException e){
e.printStackTrace();
}finally {
jdbcutils.release(com,st,rs);//释放资源
}
}
}和插入相比就变了一个sql,增删改都用的.executeUpdate,都只要修改sql语句就行
-
修改语句
package com;
import com.sun.xml.internal.bind.v2.model.core.ID;
import com.util.jdbcutils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main(String[] args) {
Connection com=null;
Statement st=null;
ResultSet rs=null;
try {
com= jdbcutils.getConnection();//获取数据库连接
st= com.createStatement();//获取SQL执行对象
String sql="update user set name=kai ehere id=1";
int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数
if(i>0){
System.out.println("修改成功!");
}
}catch (SQLException e){
e.printStackTrace();
}finally {
jdbcutils.release(com,st,rs);//释放资源
}
}
} -
-
-
-
查询
package com;
import com.sun.xml.internal.bind.v2.model.core.ID;
import com.util.jdbcutils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class test {
public static void main(String[] args) {
Connection com=null;
Statement st=null;
ResultSet rs=null;
try {
com= jdbcutils.getConnection();//获取数据库连接
st= com.createStatement();//获取SQL执行对象
String sql="select * from user ehere id=1";
rs==st.executeQuery(sql);//查询完毕,会返回结构集
while(rs.next()){
System.out.print(rs.getString(columnlabel:"name")//把结构集打印出来
}
}catch (SQLException e){
e.printStackTrace();
}finally {
jdbcutils.release(com,st,rs);//释放资源
}
}
}