(十八)JDBC优化使用(一)
一、将增删改方法合并,优化代码
-
第十七篇的UserPOImpl.java类代码可以进行优化,因为增删改方法用的都是同一种执行方法executeUpdate(),对十七篇的例子进行优化如下:
2.1 搭建实验环境
A. 启动mysql数据库,即开启mysql/bin/mysqld.exe。
B. 创建数据库,并创建所需的表。如下图(在创建数据库和表的时候请对其编码设置为utf-8编码否则后期容易出错):
2.2 创建一个web工程,并导入数据库驱动包。
2.3 编写javabean,即PO对象又叫持久化对象,此对象的成员属性与数据库的列一一对应,本例中数据库与userName和passWd两列,则PO对象中也应该有这两个成员属性。
UserPO.java
package po; public class UserPO { private String userName; private String passWd; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWd() { return passWd; } public void setPassWd(String passWd) { this.passWd = passWd; } }
解析: javabean对象中成员属性应该是private的,且必须要有get()和set()方法。
2.4 创建DAO包,专门用于操作数据(即与数据库互动,进行增删改差操作),一般有接口类和实现类。
- UserPOI.java
1 package dao; 2 3 import java.util.List; 4 5 import po.UserPO; 6 7 public interface UserPOI { 8 public boolean addUser(UserPO user); //增 9 public boolean delUser(String userName); //删 10 public boolean uptUser(UserPO user); //修改 11 public List<UserPO> gets(); //查 12 }
- UserPOImpl.java()
1 package dao; 2 3 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.ResultSet; 7 import java.sql.Statement; 8 import java.util.ArrayList; 9 import java.util.List; 10 11 import po.UserPO; 12 13 public class userPOImpl implements UserPOI { 14 15 public boolean addUser(UserPO user) { //增加 16 17 String sql="insert into user values('"+user.getUserName()+"','"+user.getPassWd()+"') "; 18 return cud(sql); 19 } 20 21 public boolean delUser(String userName) { //删除 22 23 String sql="delete from user where userName='"+userName+"'"; 24 25 return cud(sql); 26 } 27 28 29 public boolean uptUser(UserPO user){ //修改 30 String sql="update user set passWd='"+user.getPassWd()+"'where userName='"+user.getUserName()+"'"; 31 return cud(sql); 32 } 33 34 public List<UserPO> gets() { //查找全部 35 List<UserPO> list=new ArrayList<UserPO>(); 36 Connection conn=null; 37 Statement stat=null; 38 ResultSet res=null; 39 try { 40 Class.forName("com.mysql.jdbc.Driver"); 41 conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8", "root", ""); 42 stat=conn.createStatement(); 43 res=stat.executeQuery("select * from user"); 44 while(res.next()){ //不能是if 45 UserPO user=new UserPO(); 46 user.setUserName(res.getString("userName")); 47 user.setPassWd(res.getString("passWd")); 48 list.add(user); 49 50 } 51 52 } catch (Exception e) { 53 54 e.printStackTrace(); 55 }finally{ 56 try{ 57 if(conn!=null && !conn.isClosed()){ 58 conn.close(); 59 } 60 if(stat!=null && stat.isClosed()){ 61 stat.close(); 62 } 63 if(res!=null && res.isClosed()){ 64 res.close(); 65 } 66 }catch(Exception e){ 67 e.printStackTrace(); 68 } 69 70 71 } 72 73 return list; 74 } 75 76 77 public boolean cud(String sql){ //增删改方法合并 78 boolean flag=false; 79 Connection conn=null; 80 Statement stat=null; 81 final String URL="jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8"; 82 final String USER="root"; 83 final String PASSWORD=""; 84 85 try{ 86 Class.forName("com.mysql.jdbc.Driver"); 87 conn=DriverManager.getConnection(URL,USER,PASSWORD); 88 stat=conn.createStatement(); 89 90 int res=stat.executeUpdate(sql); 91 flag=(res>0)?true:false; 92 93 }catch(Exception e){ 94 e.printStackTrace(); 95 }finally{ 96 try{ 97 if(conn!=null && !conn.isClosed()){ 98 conn.close(); 99 } 100 if(stat!=null && !stat.isClosed()){ 101 stat.close(); 102 } 103 }catch(Exception e){ 104 e.printStackTrace(); 105 } 106 } 107 108 109 return flag; 110 } 111 112 }
解析: 把增删改方法合并为cud方法,使代码更简便。
2.5 创建测试类进行测试。
- UserTest.java
1 package test; 2 3 import java.util.List; 4 5 import org.junit.Test; 6 7 import dao.userPOImpl; 8 import po.UserPO; 9 10 public class UserTest { 11 @Test 12 public void UserPOTest(){ 13 userPOImpl im=new userPOImpl(); 14 15 UserPO user=new UserPO(); 16 user.setUserName("张三"); 17 user.setPassWd("123"); 18 im.addUser(user); 19 } 20 21 @Test 22 public void userPOget(){ 23 userPOImpl im=new userPOImpl(); 24 List<UserPO> list=im.gets(); 25 for(int i=0;i<list.size();i++) 26 System.out.println(list.get(i).getUserName()); 27 28 } 29 30 @Test 31 public void delUserTest(){ 32 userPOImpl im=new userPOImpl(); 33 im.delUser("张三"); 34 } 35 @Test 36 public void uptUserTest(){ 37 userPOImpl im=new userPOImpl(); 38 UserPO user=new UserPO(); 39 user.setUserName("张三"); 40 user.setPassWd("456"); 41 im.uptUser(user); 42 } 43 }
二、使用预处理prepareStatement语句优化
2.1 编写javabean
UserPO.java
package po; public class UserPO { private String userName; private String passWd; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWd() { return passWd; } public void setPassWd(String passWd) { this.passWd = passWd; } }
2.2 创建DAO包,专门用于操作数据(即与数据库互动,进行增删改差操作),一般有接口类和实现类。
- UserPOI.java
1 package dao;
2
3 import java.util.List;
4
5 import po.UserPO;
6
7 public interface UserPOI {
8 public boolean addUser(UserPO user); //增
9 public boolean delUser(String userName); //删
10 public boolean uptUser(UserPO user); //修改
11 public List<UserPO> gets(); //查
12 }
- 一般我们专门编写一个DBUtil工具类,以实现数据库的各种操作方法:
DButils.java
1 package dao; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.Statement; 7 import java.util.List; 8 9 public class DButils { 10 public static boolean cud(String sql,List<Object> list){ //增删改方法合并 11 boolean flag=false; 12 Connection conn=null; 13 PreparedStatement stat=null; 14 final String URL="jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8"; 15 final String USER="root"; 16 final String PASSWORD=""; 17 18 try{ 19 Class.forName("com.mysql.jdbc.Driver"); 20 conn=DriverManager.getConnection(URL,USER,PASSWORD); 21 stat=conn.prepareStatement(sql); //对sql语句进行预处理 22 23 if(list!=null){ 24 for(int i=0;i<list.size();i++){ //对list中存放的?里的值循环,并对sql中的?赋值 25 stat.setObject(i+1, list.get(i)); 26 } 27 } 28 29 int res=stat.executeUpdate(); //执行预处理语句指令 30 flag=(res>0)?true:false; 31 32 }catch(Exception e){ 33 e.printStackTrace(); 34 }finally{ 35 try{ 36 if(conn!=null && !conn.isClosed()){ 37 conn.close(); 38 } 39 if(stat!=null && !stat.isClosed()){ 40 stat.close(); 41 } 42 }catch(Exception e){ 43 e.printStackTrace(); 44 } 45 } 46 47 48 return flag; 49 } 50 }
- 编写实现类(UserPOImpl.java)
1 package dao; 2 3 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.ResultSet; 7 import java.sql.Statement; 8 import java.util.ArrayList; 9 import java.util.List; 10 11 import po.UserPO; 12 13 public class userPOImpl implements UserPOI { 14 15 public boolean addUser(UserPO user) { //增加 16 17 String sql="insert into user values(?,?)"; 18 List<Object> list=new ArrayList<Object>(); 19 list.add(user.getUserName()); 20 list.add(user.getPassWd()); 21 return DButils.cud(sql,list); 22 } 23 24 public boolean delUser(String userName) { //删除 25 26 String sql="delete from user where userName=?"; 27 List<Object> list=new ArrayList<Object>(); 28 list.add(userName); 29 return DButils.cud(sql,list); 30 } 31 32 33 public boolean uptUser(UserPO user){ //修改 34 String sql="update user set passWd=? where userName=?"; 35 List<Object> list=new ArrayList<Object>(); 36 list.add(user.getPassWd()); 37 list.add(user.getUserName()); 38 return DButils.cud(sql,list); 39 40 } 41 42 public List<UserPO> gets() { //查找全部 43 List<UserPO> list=new ArrayList<UserPO>(); 44 Connection conn=null; 45 Statement stat=null; 46 ResultSet res=null; 47 try { 48 Class.forName("com.mysql.jdbc.Driver"); 49 conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8", "root", ""); 50 stat=conn.createStatement(); 51 res=stat.executeQuery("select * from user"); 52 while(res.next()){ //不能是if 53 UserPO user=new UserPO(); 54 user.setUserName(res.getString("userName")); 55 user.setPassWd(res.getString("passWd")); 56 list.add(user); 57 58 } 59 60 } catch (Exception e) { 61 62 e.printStackTrace(); 63 }finally{ 64 try{ 65 if(conn!=null && !conn.isClosed()){ 66 conn.close(); 67 } 68 if(stat!=null && stat.isClosed()){ 69 stat.close(); 70 } 71 if(res!=null && res.isClosed()){ 72 res.close(); 73 } 74 }catch(Exception e){ 75 e.printStackTrace(); 76 } 79 } 81 return list; 82 } 88 }
2.3 创建测试类进行测试。
- UserTest.java
1 package test;
2
3 import java.util.List;
4
5 import org.junit.Test;
6
7 import dao.userPOImpl;
8 import po.UserPO;
9
10 public class UserTest {
11 @Test
12 public void UserPOTest(){
13 userPOImpl im=new userPOImpl();
14
15 UserPO user=new UserPO();
16 user.setUserName("张三");
17 user.setPassWd("123");
18 im.addUser(user);
19 }
20
21 @Test
22 public void userPOget(){
23 userPOImpl im=new userPOImpl();
24 List<UserPO> list=im.gets();
25 for(int i=0;i<list.size();i++)
26 System.out.println(list.get(i).getUserName());
27
28 }
29
30 @Test
31 public void delUserTest(){
32 userPOImpl im=new userPOImpl();
33 im.delUser("张三");
34 }
35 @Test
36 public void uptUserTest(){
37 userPOImpl im=new userPOImpl();
38 UserPO user=new UserPO();
39 user.setUserName("张三");
40 user.setPassWd("456");
41 im.uptUser(user);
42 }
43 }
- 本例中的DBUtils代码可以优化为:
1 package dao; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.Statement; 8 import java.util.List; 9 10 public class DButils { 11 12 /** 13 * 单例模式 14 * 15 */ 16 public static Connection conn=null; 17 static{ 18 /* 19 * 把常量和公用的放在static块里加载 20 * */ 21 final String URL="jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8"; 22 final String USER="root"; 23 final String PASSWORD=""; 24 25 try{ 26 Class.forName("com.mysql.jdbc.Driver"); 27 conn=DriverManager.getConnection(URL,USER,PASSWORD); 28 }catch(Exception e){ 29 e.printStackTrace(); 30 } 31 32 } 33 34 public static boolean cud(String sql,List<Object> list){ //增删改方法合并 35 boolean flag=false; 36 PreparedStatement stat=null; 37 try{ 38 stat=conn.prepareStatement(sql); //对sql语句进行预处理 39 40 if(list!=null){ 41 for(int i=0;i<list.size();i++){ //对list中存放的?里的值循环,并对sql中的?赋值 42 stat.setObject(i+1, list.get(i)); 43 } 44 } 45 46 int res=stat.executeUpdate(); //执行预处理语句指令 47 flag=(res>0)?true:false; 48 49 }catch(Exception e){ 50 e.printStackTrace(); 51 }finally{ 52 close(conn, stat, null); 53 } 54 55 return flag; 56 } 57 58 /** 59 * 关闭流 60 * @param conn 数据库连接 61 * @param stat 预处理指令 62 * @param res 返回结果集 63 */ 64 public static void close(Connection conn,PreparedStatement stat,ResultSet res){ 65 try{ 66 if(conn!=null && !conn.isClosed()){ 67 conn.close(); 68 if(stat!=null && !stat.isClosed()){ 69 stat.close(); 70 } 71 if(res!=null && !res.isClosed()){ 72 res.close(); 73 } 74 } 75 }catch(Exception e){ 76 e.printStackTrace(); 77 } 78 79 80 } 81 82 }
三、使用连接池优化jdbc
- 上个例子的DBUtils可以优化为:
1 package dao; 2 3 import java.beans.PropertyVetoException; 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.PreparedStatement; 7 import java.sql.ResultSet; 8 import java.sql.Statement; 9 import java.util.List; 10 11 import com.mchange.v2.c3p0.ComboPooledDataSource; 12 13 public class DButils { 14 15 /** 16 * 连接池 17 */ 18 static ComboPooledDataSource dateSource; 19 static{ 20 dateSource=new ComboPooledDataSource(); 21 final String URL="jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8"; 22 final String USER="root"; 23 final String PASSWORD=""; 24 final String DRIVER="com.mysql.jdbc.Driver"; 25 try { 26 dateSource.setDriverClass(DRIVER); 27 dateSource.setJdbcUrl(URL); 28 dateSource.setUser(USER); 29 dateSource.setPassword(PASSWORD); 30 dateSource.setMaxPoolSize(100); 31 dateSource.setMinPoolSize(10); 32 dateSource.setMaxStatements(10000); 33 } catch (PropertyVetoException e) { 34 e.printStackTrace(); 35 } 36 } 37 38 39 /** 40 * 单例模式 41 */ 42 // public static Connection conn=null; 43 // static{ 44 // /* 45 // * 把常量和公用的放在static块里加载 46 // * */ 47 // final String URL="jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8"; 48 // final String USER="root"; 49 // final String PASSWORD=""; 50 // 51 // try{ 52 // Class.forName("com.mysql.jdbc.Driver"); 53 // conn=DriverManager.getConnection(URL,USER,PASSWORD); 54 // }catch(Exception e){ 55 // e.printStackTrace(); 56 // } 57 // 58 // } 59 60 public static boolean cud(String sql,List<Object> list){ //增删改方法合并 61 boolean flag=false; 62 PreparedStatement stat=null; 63 Connection conn=null; 64 try{ 65 conn=dateSource.getConnection(); 66 stat=conn.prepareStatement(sql); //对sql语句进行预处理 67 68 if(list!=null){ 69 for(int i=0;i<list.size();i++){ //对list中存放的?里的值循环,并对sql中的?赋值 70 stat.setObject(i+1, list.get(i)); 71 } 72 } 73 74 int res=stat.executeUpdate(); //执行预处理语句指令 75 flag=(res>0)?true:false; 76 77 }catch(Exception e){ 78 e.printStackTrace(); 79 }finally{ 80 close(conn, stat, null); 81 } 82 83 return flag; 84 } 85 86 /** 87 * 关闭流 88 * @param conn 数据库连接 89 * @param stat 预处理指令 90 * @param res 返回结果集 91 */ 92 public static void close(Connection conn,PreparedStatement stat,ResultSet res){ 93 try{ 94 if(conn!=null && !conn.isClosed()){ 95 conn.close(); 96 if(stat!=null && !stat.isClosed()){ 97 stat.close(); 98 } 99 if(res!=null && !res.isClosed()){ 100 res.close(); 101 } 102 } 103 }catch(Exception e){ 104 e.printStackTrace(); 105 } 106 107 108 } 109 110 }
- 使用C3P0连接池需要导入相应的jar包。
四、优化总结
4.1 搭建实验环境
A. 启动mysql数据库,即开启mysql/bin/mysqld.exe。
B. 创建数据库,并创建所需的表。如下图(在创建数据库和表的时候请对其编码设置为utf-8编码否则后期容易出错):
4.2 创建一个web工程,并导入数据库驱动包。
4.3 编写javabean,即PO对象又叫持久化对象,此对象的成员属性与数据库的列一一对应,本例中数据库与userName和passWd两列,则PO对象中也应该有这两个成员属性。
UserPO.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
package po; public class UserPO { private String userName; private String passWd; public String getUserName() { return userName; } public void setUserName(String userName) { this .userName = userName; } public String getPassWd() { return passWd; } public void setPassWd(String passWd) { this .passWd = passWd; } } |
解析: javabean对象中成员属性应该是private的,且必须要有get()和set()方法。
4.4 创建DAO包,专门用于操作数据(即与数据库互动,进行增删改差操作),一般有接口类和实现类和工具类。
- UserPOI.java
- UserPOImpl.java()
1 package dao; 2 3 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.ResultSet; 7 import java.sql.Statement; 8 import java.util.ArrayList; 9 import java.util.List; 10 11 import po.UserPO; 12 13 public class userPOImpl implements UserPOI { 14 15 public boolean addUser(UserPO user) { //增加 16 17 String sql="insert into user values(?,?)"; 18 List<Object> list=new ArrayList<Object>(); 19 list.add(user.getUserName()); 20 list.add(user.getPassWd()); 21 return DButils.cud(sql,list); 22 } 23 24 public boolean delUser(String userName) { //删除 25 26 String sql="delete from user where userName=?"; 27 List<Object> list=new ArrayList<Object>(); 28 list.add(userName); 29 return DButils.cud(sql,list); 30 } 31 32 33 public boolean uptUser(UserPO user){ //修改 34 String sql="update user set passWd=? where userName=?"; 35 List<Object> list=new ArrayList<Object>(); 36 list.add(user.getPassWd()); 37 list.add(user.getUserName()); 38 return DButils.cud(sql,list); 39 40 } 41 42 public List<UserPO> gets() { //查找全部 43 44 String sql="select * from user"; 45 return DButils.get(sql, null); 46 } 47 48 public UserPO getByName(String userName){ //按名字找人 49 String sql="select * from user where userName=?"; 50 List<Object> list=new ArrayList<Object>(); 51 list.add(userName); 52 return (DButils.get(sql, list).size()==1)?DButils.get(sql, list).get(0):null; 53 54 } 55 }
DButils.java
1 package dao; 2 3 import java.beans.PropertyVetoException; 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.sql.PreparedStatement; 7 import java.sql.ResultSet; 8 import java.sql.SQLException; 9 import java.sql.Statement; 10 import java.util.ArrayList; 11 import java.util.List; 12 13 import com.mchange.v2.c3p0.ComboPooledDataSource; 14 15 import po.UserPO; 16 17 public class DButils { 18 19 /** 20 * 连接池 21 */ 22 static ComboPooledDataSource dateSource; 23 static{ 24 dateSource=new ComboPooledDataSource(); 25 final String URL="jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8"; 26 final String USER="root"; 27 final String PASSWORD=""; 28 final String DRIVER="com.mysql.jdbc.Driver"; 29 try { 30 dateSource.setDriverClass(DRIVER); 31 dateSource.setJdbcUrl(URL); 32 dateSource.setUser(USER); 33 dateSource.setPassword(PASSWORD); 34 dateSource.setMaxPoolSize(100); 35 dateSource.setMinPoolSize(10); 36 dateSource.setMaxStatements(10000); 37 } catch (PropertyVetoException e) { 38 e.printStackTrace(); 39 } 40 } 41 42 43 /** 44 * 单例模式 45 */ 46 // public static Connection conn=null; 47 // static{ 48 // /* 49 // * 把常量和公用的放在static块里加载 50 // * */ 51 // final String URL="jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&characterEncoding=UTF-8"; 52 // final String USER="root"; 53 // final String PASSWORD=""; 54 // 55 // try{ 56 // Class.forName("com.mysql.jdbc.Driver"); 57 // conn=DriverManager.getConnection(URL,USER,PASSWORD); 58 // }catch(Exception e){ 59 // e.printStackTrace(); 60 // } 61 // 62 // } 63 64 public static boolean cud(String sql,List<Object> list){ //增删改方法合并 65 boolean flag=false; 66 PreparedStatement stat=null; 67 Connection conn=null; 68 try{ 69 conn=dateSource.getConnection(); 70 stat=conn.prepareStatement(sql); //对sql语句进行预处理 71 72 if(list!=null){ 73 for(int i=0;i<list.size();i++){ //对list中存放的?里的值循环,并对sql中的?赋值 74 stat.setObject(i+1, list.get(i)); 75 } 76 } 77 78 int res=stat.executeUpdate(); //执行预处理语句指令 79 flag=(res>0)?true:false; 80 81 }catch(Exception e){ 82 e.printStackTrace(); 83 }finally{ 84 close(conn, stat, null); 85 } 86 87 return flag; 88 } 89 90 /** 91 * 关闭流 92 * @param conn 数据库连接 93 * @param stat 预处理指令 94 * @param res 返回结果集 95 */ 96 public static void close(Connection conn,PreparedStatement stat,ResultSet res){ 97 try{ 98 if(conn!=null ){ 99 conn.close(); 100 if(stat!=null ){ 101 stat.close(); 102 } 103 if(res!=null ){ 104 res.close(); 105 } 106 } 107 }catch(Exception e){ 108 e.printStackTrace(); 109 } 110 111 } 112 113 /** 114 * 获取连接池中的连接 115 */ 116 public static Connection getConn(){ 117 try { 118 return dateSource.getConnection(); 119 } catch (SQLException e) { 120 e.printStackTrace(); 121 } 122 return null; 123 } 124 125 /** 126 * 数据库查找 127 * @param sql 128 * @param list 129 * @return 130 */ 131 public static List<UserPO> get(String sql,List<Object> list){ 132 List<UserPO> users=new ArrayList<UserPO>(); 133 134 Connection conn=getConn(); 135 PreparedStatement stat=null; 136 ResultSet res=null; 137 try { 138 stat=conn.prepareStatement(sql); //sql语句预处理 139 140 if(list!=null){ 141 for(int i=0;i<list.size();i++){ 142 stat.setObject(i+1, list.get(i)); //预处理语句?赋值 143 } 144 } 145 146 res=stat.executeQuery(); //执行sql语句 147 UserPO user=null; 148 while(res.next()){ 149 user=new UserPO(); 150 user.setUserName(res.getString("userName")); 151 user.setPassWd(res.getString("passWd")); 152 users.add(user); 153 } 154 155 } catch (SQLException e) { 156 e.printStackTrace(); 157 }finally{ 158 close(conn,stat,res); 159 } 160 return users; 161 } 162 }
2.5 创建测试类进行测试。
- UserTest.java
1 package test;
2
3 import java.util.List;
4
5 import org.junit.Test;
6
7 import dao.userPOImpl;
8 import po.UserPO;
9
10 public class UserTest {
11 @Test
12 public void UserPOTest(){
13 userPOImpl im=new userPOImpl();
14
15 UserPO user=new UserPO();
16 user.setUserName("张三");
17 user.setPassWd("123");
18 im.addUser(user);
19 }
20
21 @Test
22 public void userPOget(){
23 userPOImpl im=new userPOImpl();
24 List<UserPO> list=im.gets();
25 for(int i=0;i<list.size();i++)
26 System.out.println(list.get(i).getUserName());
27
28 }
29
30 @Test
31 public void delUserTest(){
32 userPOImpl im=new userPOImpl();
33 im.delUser("张三");
34 }
35 @Test
36 public void uptUserTest(){
37 userPOImpl im=new userPOImpl();
38 UserPO user=new UserPO();
39 user.setUserName("张三");
40 user.setPassWd("456");
41 im.uptUser(user);
42 }
43 }