java使用jdbc对mysql的操作,进行事务处理封装

实现简单的 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 连接到数据库 – 说明

  1. execute 方法
    public static Boolean execute(String strSql, Object... params);
    

    执行 PreparedStatement 对象中的SQL语句;可以是任何类型的SQL语句。一些预备语句返回多个结果;execute 方法处理这些复杂语句,以及 executeQuery 和 executeUpdate 方法处理的更简单的语句形式。execute 方法返回一个布尔值,表示第一个结果的形式。必须调用 getResultSet 或 getUpdateCount 方法来检索结果;您必须调用 getMoreResults 来移动到任何后续结果


  2. executeUpdate 方法

    public static int executeUpdate(String strSql, Object... params);
    

    执行PreparedStatement对象中的SQL语句;SQL语句必须是DML或DDL语句


  3. 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对象的第一行


  4. 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("事务处理失败!");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值