实现简单的 java 使用 jdbc 操作 mysql 的封装,已经处理事务的封装
菜鸟学生一枚,如若有错或者有哪些地方可以改进的可以向我提出,不高冷嘎嘎好相处,有不懂的也可以问我
包说明
resources包下面的有一个配置文件database.properties
# Database driver string
driver=com.mysql.jdbc.Driver
# Connection URL string
url=jdbc:mysql://localhost:3306/
# Database name
databaseName=test
# Set the parameters
set=useUnicode=true&characterEncoding=UTF-8
# Database userName
userName=root
# Password
passWord=123456
src.DBTool包下有两个java文件
-
DBTool.java – Java使用JDBC连接到数据库的封装
public static Boolean execute(String strSql, Object... params); public static int executeUpdate(String strSql, Object... params); public static Object executeQuery(String strSql, Object... params); public static <T> T executeQuery(Class<T> cls, String strSql, Object... params); public static <T> T executeQuery(Class<T> cls, String strSql, Boolean isUnderlineFormat, Object... params); public static <T> List<T> executeQuerys(Class<T> cls, String strSql, Object... params); public static <T> List<T> executeQuerys(Class<T> cls, String strSql, Boolean isUnderlineFormat, Object... params);
-
Transaction.java – Java使用JDBC处理事务
public boolean commit(); public Transaction addTransaction(String strSql, Object... params);
Java 使用 JDBC 连接到数据库 – 说明
-
execute 方法
public static Boolean execute(String strSql, Object... params);
执行 PreparedStatement 对象中的SQL语句;可以是任何类型的SQL语句。一些预备语句返回多个结果;execute 方法处理这些复杂语句,以及 executeQuery 和 executeUpdate 方法处理的更简单的语句形式。execute 方法返回一个布尔值,表示第一个结果的形式。必须调用 getResultSet 或 getUpdateCount 方法来检索结果;您必须调用 getMoreResults 来移动到任何后续结果
-
executeUpdate 方法
public static int executeUpdate(String strSql, Object... params);
执行PreparedStatement对象中的SQL语句;SQL语句必须是DML或DDL语句
-
executeQuery方法
执行PreparedStatement对象中的SQL语句;并返回查询生成的ResultSet对象,该方法提供了三个重载
-
public static Object executeQuery(String strSql, Object... params);
返回ResultSet对象的第一行、第一列
示例:
// 获取学生总数 int result = (int)DBTool.executeQuery("select count(1) from student");
-
public static <T> T executeQuery(Class<T> cls, String strSql, Object... params);
cls
传入需要返回的数据类型,返回ResultSet对象的第一行示例:
// 获取id为1的学生信息 Student student = DBTool.executeQuery("select * from student where id = ?",1);
-
public static <T> T executeQuery(Class<T> cls, String strSql, Boolean isUnderlineFormat, Object... params);
如果数据库命名格式为下划线 (user_name) 命名JavaBean命名格式为驼峰 (userName) 命名则使用该方法,
cls
传入需要返回的数据类型,isUnderlineFormat
传入true,返回ResultSet对象的第一行
-
-
executeQuerys方法
执行PreparedStatement对象中的SQL语句;并返回查询生成的ResultSet对象,该方法提供了两个重载
-
public static <T> List<T> executeQuerys(Class<T> cls, String strSql, Object... params);
cls
传入需要返回的数据类型,返回ResultSet对象的List集合示例:
// 获取所有学生信息 List<Student> list = DBTool.executeQuerys(Student.class,"select * from student"); // 获取所有学生的姓名 List<String> list = DBTool.executeQuerys(String.class,"select name from student");
-
public static <T> List<T> executeQuerys(Class<T> cls, String strSql, Boolean isUnderlineFormat, Object... params);
如果数据库命名格式为下划线 (user_name) 命名JavaBean命名格式为驼峰 (userName) 命名则使用该方法,
cls
传入需要返回的数据类型,isUnderlineFormat
传入true,返回 ResultSet 对象的 List 集合
-
Java 使用 JDBC 处理事务 – 说明
// 创建事务
Transaction transaction = new Transaction();
/* 添加事务并提交 */
boolean result = transaction.addTransaction("update user_info set balance -= ? where id = ?",500,5)
.addTransaction("update user_info set balance += ? where id = ?",500,6)
.commit();
if(result){
System.out.println("事务处理成功!");
} else {
System.out.println("事务处理失败!");
}