源码博客地址:https://www.cnblogs.com/hellokitty1/p/5216025.html
优化点:
1)在select操作的方法里面,出现异常的时候,个人觉得是不需要执行session.rollback()操作的。
2)在所有数据库连接使用完成以后,个人觉得需要执行下session.close()方法,将使用完成的连接重新返还到连接池,以避免数据库连接的泄露。
以下为优化后的代码:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
package com.cy.mybatis.tools;
import java.util.List; import org.apache.ibatis.session.SqlSession; import com.cy.mybatis.beans.UserBean; import com.cy.mybatis.mapper.UserMapper; import com.cy.mybatis.service.DBTools; public class UserService { public static void main(String[] args) { // insertUser(); // deleteUser(); // selectUserById(); selectAllUser(); } /** * 新增用户 */ private static void insertUser() { SqlSession session = DBTools.getSession(); UserMapper mapper = session.getMapper(UserMapper.class); UserBean user = new UserBean("lisi", "5432109876", 1100.0); try { mapper.insertUser(user); session.commit(); session.close(); } catch (Exception e) { e.printStackTrace(); session.rollback(); } } /** * 删除用户 */ private static void deleteUser(){ SqlSession session=DBTools.getSession(); UserMapper mapper=session.getMapper(UserMapper.class); try { mapper.deleteUser(1); // 增删改需要commit()会话; session.commit(); session.close(); } catch (Exception e) { e.printStackTrace(); session.rollback(); } } /** * 根据id查询用户 */ private static void selectUserById(){ SqlSession session=DBTools.getSession(); UserMapper mapper=session.getMapper(UserMapper.class); try { UserBean user = mapper.selectUserById(2); session.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 查询所有的用户 */ private static void selectAllUser(){ SqlSession session=DBTools.getSession(); UserMapper mapper=session.getMapper(UserMapper.class); try { List<UserBean> user=mapper.selectAllUser(); System.out.println("ResultSet has " + user.size() +" rows."); for(int i=0; i<user.size();i++){ System.out.println("ID="+user.get(i).getId()+" | " + "username="+user.get(i).getUsername()+" | " + "password="+user.get(i).getPassword()+" | " + "account="+user.get(i).getAccount()); } session.close(); } catch (Exception e) { e.printStackTrace(); } } } |
原文:https://www.cnblogs.com/cnskylee/p/10384183.html