一、导入commons-dbutils-1.6.jar和mysql-connector-java-5.1.37-bin.jar包
二、创建User实体类
package Domian;
public class User {
private int uid;
private String username;
public User() {
}
public User(int uid, String username) {
super();
this.uid = uid;
this.username = username;
}
@Override
public String toString() {
return "User [uid=" + uid + ", username=" + username + "]";
}
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
三、创建DBUtils包,进行获取资源和关闭资源
在这里就要使用mysql-connector-java-5.1.37-bin.jar包,
注意:导包的时候只能导入java.sql.*包,不要导入com.mysql.jdbc.*
package DBUtils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//封装一个获取资源的方法
public class JDBCUtil {
// 1.创建一个静态的连接方法,直接调用就OK
public static Connection getConnection() {
try {
// 1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2.获取连接
Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/school", "root","123456");
System.out.println(conn);
return conn;
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
return null;
}
// 2.创建一个静态的关闭资源的方法,直接调用就可以关闭
public static void closeAllResource(Connection conn, Statement st, ResultSet rs) {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (st != null) {
try {
st.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
三、最基本的数据库操作的方法
package DBUtils;
import java.sql.*;
import java.util.ArrayList;
import Domian.User;
//这个是jdbc最原始的方法
public class dao1 {
// inseert,update,delete使用这个方法,(IUD)
public boolean IUD(String sql) {
// 1.连接数据库
Connection conn = JDBCUtil.getConnection();
Statement st;
try {
// 2.获取执行sql语句对象
st = conn.createStatement();
// 增、删、改使用update方法
int count = st.executeUpdate(sql);
// 3.关闭资源
JDBCUtil.closeAllResource(conn, st, null);
if (count >= 1) {
return true;
} else {
return false;
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("失败了");
}
return false;
}
// select使用这个方法
public ArrayList<User> Search() {
// 1.连接数据库
Connection conn = JDBCUtil.getConnection();
// 2.获取执行sql语句对象
Statement st;
ArrayList<User> list = new ArrayList<User>();
String sql = "SELECT * FROM USER";
try {
// 2.获取执行sql语句对象
st = conn.createStatement();
// 3.获得结果
ResultSet rs = st.executeQuery(sql);
// 4.遍历结果集
while (rs.next()) {
int uid = rs.getInt("uid");
String username = rs.getString("username");
list.add(new User(uid, username));
}
// 4.关闭资源
JDBCUtil.closeAllResource(conn, st, null);
return list;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("失败了");
}
return null;
}
}
四、使用QueryRunner方法进行数据库操作
注意:如果要进行查询操作,记得在实体类中创建一个空参构造函数。
package DBUtils;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import Domian.User;
//使用dbutils.jar包
public class dao2 {
// 增删改
public boolean add(int uid,String username) {
// 1.获取资源
Connection conn = JDBCUtil.getConnection();
// 2.创建了一个QueryRunner对象
QueryRunner qr = new QueryRunner();
// 3.调用QueryRunner的query方法.
List<User> list;
try {
String sql="INSERT INTO USER VALUE(?,?)";
Object[]parms= {uid,username};//parms会自动配置数据进入sql语句中
int count=qr.update(conn,sql,parms);
JDBCUtil.closeAllResource(conn, null, null);
if(count>=1) {
return true;
}else {
return false;
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("失败了");
}
return false;
}
// 查询
public ArrayList<User> Search() {
// 1.获取资源
Connection conn = JDBCUtil.getConnection();
// 2.创建sql语句
String sql = "SELECT * FROM USER";
// 3.创建了一个QueryRunner对象
QueryRunner qr = new QueryRunner();
// 4.调用QueryRunner的query方法.
List<User> list;
try {
// 这条语句只能用于查询语句,最后一个参数会自动生成一个User的集合
//注意事项,在User类中要创建一个无参数构造方法
list = qr.query(conn, sql, new BeanListHandler<User>(User.class));// 参1 连接 参2 sql 参3 转换器
JDBCUtil.closeAllResource(conn, null, null);
return (ArrayList<User>) list;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("失败了");
}
return null;
}
}
DUButil工具的介绍和使用教程
https://www.cnblogs.com/lihanxiang/p/8475548.html;
好了,这就是我今天学的,为了方便,可以直接复制方法二使用.