package demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbUtil {
private static String url = “jdbc:mariadb://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC”;
private static String username = “test”;
private static String password = “test”;
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("org.mariadb.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
dao类
DbUtils核心的CURD功能都在这里。
package demo;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
public class UserDao {
/**
* 查询所有用户
* @return
*/
public List findAll(){
//创建连接
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
List list = null;
try {
//执行SQL查询,并获取结果
//BeanListHandler 映射多个对象
list = queryRunner.query(conn, "select * from user", new BeanListHandler<>(User.class));
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
return list;
}
/**
* 保存用户
* @param user
*/
public void save(User user) {
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
int rows = 0;
try {
//执行SQL插入
rows = queryRunner.update(conn, "INSERT INTO user(name, age,imgurl) VALUES(?,?,?)",
new Object[] {user.getName(),user.getAge(),user.getImgurl()});
//new Object[] {user.getName(),user.getAge(),user.getImgurl()} 设置参数
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
}
/**
* 查找一个用户
* @param id
* @return
*/
public User findOne(int id) {
//创建连接
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
User user = new User();
try {
//执行SQL查询,并获取结果
//BeanHandler 映射成一个对象
user = queryRunner.query(conn, "select * from user where id=?", new BeanHandler<>(User.class),
new Object[] {id});
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
return user;
}
/**
* 更新用户
* @param user
*/
public void update(User user) {
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
int rows = 0;
try {
//执行SQL插入
rows = queryRunner.update(conn, "update user set name=?,age=?,imgurl=? where id=?",
new Object[] {user.getName(),user.getAge(),user.getImgurl(),user.getId()});
//new Object[] {user.getName(),user.getAge(),user.getImgurl()} 设置参数
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
}
/**
* 根据ID删除用户
* @param id
*/
public void delete(int id) {
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
int rows = 0;
try {
//执行SQL插入
rows = queryRunner.update(conn,"delete from user where id=?", new Object[] {id});
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
}
}
QueryRunner执行SQL语句的方法原型:public int update(Connection conn, String sql,Object… params) throws SQLException
它有三个参数,一个是连接,一个是SQL语句,一个是SQL语句中的参数。
其中参数是一个多参数对象,数据类型为Object,实例化这个多值参数的对象时应该这样:
new Object[] {user.getName(),user.getAge(),user.getImgurl()} //设置参数package demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DbUtil {
private static String url = “jdbc:mariadb://localhost:3306/test?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC”;
private static String username = “test”;
private static String password = “test”;
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName("org.mariadb.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
dao类
DbUtils核心的CURD功能都在这里。
package demo;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import org.apache.commons.dbutils.DbUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
public class UserDao {
/**
* 查询所有用户
* @return
*/
public List findAll(){
//创建连接
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
List list = null;
try {
//执行SQL查询,并获取结果
//BeanListHandler 映射多个对象
list = queryRunner.query(conn, "select * from user", new BeanListHandler<>(User.class));
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
return list;
}
/**
* 保存用户
* @param user
*/
public void save(User user) {
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
int rows = 0;
try {
//执行SQL插入
rows = queryRunner.update(conn, "INSERT INTO user(name, age,imgurl) VALUES(?,?,?)",
new Object[] {user.getName(),user.getAge(),user.getImgurl()});
//new Object[] {user.getName(),user.getAge(),user.getImgurl()} 设置参数
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
}
/**
* 查找一个用户
* @param id
* @return
*/
public User findOne(int id) {
//创建连接
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
User user = new User();
try {
//执行SQL查询,并获取结果
//BeanHandler 映射成一个对象
user = queryRunner.query(conn, "select * from user where id=?", new BeanHandler<>(User.class),
new Object[] {id});
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
return user;
}
/**
* 更新用户
* @param user
*/
public void update(User user) {
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
int rows = 0;
try {
//执行SQL插入
rows = queryRunner.update(conn, "update user set name=?,age=?,imgurl=? where id=?",
new Object[] {user.getName(),user.getAge(),user.getImgurl(),user.getId()});
//new Object[] {user.getName(),user.getAge(),user.getImgurl()} 设置参数
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
}
/**
* 根据ID删除用户
* @param id
*/
public void delete(int id) {
Connection conn = DbUtil.getConnection();
//创建SQL执行工具
QueryRunner queryRunner = new QueryRunner();
int rows = 0;
try {
//执行SQL插入
rows = queryRunner.update(conn,"delete from user where id=?", new Object[] {id});
} catch (SQLException e) {
e.printStackTrace();
}
//关闭数据库连接
DbUtils.closeQuietly(conn);
}
}
QueryRunner执行SQL语句的方法原型:public int update(Connection conn, String sql,Object… params) throws SQLException
它有三个参数,一个是连接,一个是SQL语句,一个是SQL语句中的参数。
其中参数是一个多参数对象,数据类型为Object,实例化这个多值参数的对象时应该这样:
new Object[] {user.getName(),user.getAge(),user.getImgurl()} //设置参数