- 编写测试类Test.java,测试以下功能,该类模板如下::
- 添加一个新用户
- 按新用户名查询用户
- 修改用户密码
- 删除新用户
- 查询并显示所有用户
//类1. User.java package DB; public class User { String name; String password; String getname() { return name; } public void setname(String name) { this.name=name; } String getpassword() { return password; } public void setpassword(String password) { this.password=password; } } |
//类2. DBUtil.java package DB; import java.net.ConnectException; import java.sql.*; import java.util.*;
public class DBUtil { //设置数据库参数 private static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=Information"; private static final String USER="sa"; private static final String PASSWORD="769610354zh"; private static Connection conn=null; //测试用例 public DBUtil() { //补充建立连接的代码 try { //1.加载驱动程序 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.获得数据库的连接 conn=(Connection)DriverManager.getConnection(URL,USER,PASSWORD);
} catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } }
//getConnection方法返回所建立的数据库连接,即:Connection对象 public static Connection getConnection(){ return conn; } } |
//类3. UserDao.java package DB; import java.sql.*; import java.util.*;
public class UserDao{ //构造方法 //用户名查询 DBUtil one = new DBUtil(); Connection con = DBUtil.getConnection();
public void add(User use) { //3.得到连接con后,获取可执行sql语句的Statement对象 try { Statement stmt = con.createStatement(); //4. Statement对象执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。 ResultSet rs = stmt.executeQuery("select * from userInfo"); System.out.println("【添加用户】"); int check=0; while(rs.next()){//如果对象中有数据,就会循环打印出来 String na=rs.getString(1); if(na.equals(use.getname())) { check=1; } } if(check==1) { System.out.println("该用户"+use.getname()+"已存在!"); } else { String sql="insert into userInfo(name,password)values(?,?)"; PreparedStatement A=con.prepareStatement(sql); A.setString(1, use.getname()); A.setString(2, use.getpassword()); A.executeUpdate();//执行更新操作,返回受影响的行数 System.out.println("添加成功!"); }
} catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } }
//按用户姓名查找用户 public void query(String name1){ try { System.out.println("\n【查找用户】"); String sql="select * from userInfo where name = ?"; PreparedStatement A=con.prepareStatement(sql); A.setString(1, name1); ResultSet rs = A.executeQuery(); int check=0; while(rs.next()){//如果对象中有数据,就会循环打印出来 String na=rs.getString(1); String key=rs.getString(2); System.out.println("用户名: "+na+" 密码: "+key); check=1;
} if(check==0) { System.out.println("该用户不存在!"); } } catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } }
//删除一个用户记录 public void delete(String name1){ try { System.out.println("\n【删除用户】"); String sql="delete from userInfo where name = ?"; PreparedStatement A=con.prepareStatement(sql); A.setString(1, name1); int check=A.executeUpdate(); if(check==1) { System.out.println("已删除该用户!"); } else { System.out.println("该用户不存在!"); }
} catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } }
//update()方法:更新用户信息,比如:修改密码。 public void updata(String name1,String newpassword){ try { System.out.println("\n【修改用户密码】"); String sql="update userInfo set password = ? where name = ?"; PreparedStatement A=con.prepareStatement(sql); A.setString(1,newpassword); A.setString(2, name1); int check=A.executeUpdate(); if(check==1) { System.out.println("该用户的密码已修改!"); System.out.println("用户名: "+name1+" 密码: "+newpassword); } else { System.out.println("该用户不存在!"); } } catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } }
//queryAll()方法:遍历并显示所有用户信息。 public void queryAll(){ try { Statement stmt = con.createStatement(); //4. Statement对象执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。 ResultSet rs = stmt.executeQuery("select * from userInfo"); System.out.println("\n【遍历所有用户】"); System.out.println("用户名 密码"); int check=0; while(rs.next()){//如果对象中有数据,就会循环打印出来 String na=rs.getString(1); String key=rs.getString(2); System.out.println(" "+na+" "+key); check = 1; } if(check==0) { System.out.println("该表中没有用户!"); }
} catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } } } |
//类4. Text.java package DB; public class Text { public static void main(String[] args) throws Exception { UserDao userDao=new UserDao(); User use1=new User(); /*//添加用户*/ use1.setname("张三"); use1.setpassword("12345"); userDao.add(use1); use1.setname("李四"); use1.setpassword("666666"); userDao.add(use1); use1.setname("Mary"); use1.setpassword("0000"); userDao.add(use1); //查找用户 userDao.query("张三"); //删除用户 userDao.delete("张三"); userDao.delete("李四"); userDao.delete("Mary"); //修改用户密码 userDao.updata("张三", "54321"); //遍历 userDao.queryAll(); } } |
测试结果
//类1. User.java package DB; public class User { String name; String password; String getname() { return name; } public void setname(String name) { this.name=name; } String getpassword() { return password; } public void setpassword(String password) { this.password=password; } } |
//类2. DBUtil.java package DB; import java.net.ConnectException; import java.sql.*; import java.util.*;
public class DBUtil { //设置数据库参数 private static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=Information"; private static final String USER="sa"; private static final String PASSWORD="769610354zh"; private static Connection conn=null; //测试用例 public DBUtil() { //补充建立连接的代码 try { //1.加载驱动程序 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.获得数据库的连接 conn=(Connection)DriverManager.getConnection(URL,USER,PASSWORD);
} catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } }
//getConnection方法返回所建立的数据库连接,即:Connection对象 public static Connection getConnection(){ return conn; } } |
//类3. UserDao.java package DB; import java.sql.*; import java.util.*;
public class UserDao{ //构造方法 //用户名查询 DBUtil one = new DBUtil(); Connection con = DBUtil.getConnection();
public void add(User use) { //3.得到连接con后,获取可执行sql语句的Statement对象 try { Statement stmt = con.createStatement(); //4. Statement对象执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。 ResultSet rs = stmt.executeQuery("select * from userInfo"); System.out.println("【添加用户】"); int check=0; while(rs.next()){//如果对象中有数据,就会循环打印出来 String na=rs.getString(1); if(na.equals(use.getname())) { check=1; } } if(check==1) { System.out.println("该用户"+use.getname()+"已存在!"); } else { String sql="insert into userInfo(name,password)values(?,?)"; PreparedStatement A=con.prepareStatement(sql); A.setString(1, use.getname()); A.setString(2, use.getpassword()); A.executeUpdate();//执行更新操作,返回受影响的行数 System.out.println("添加成功!"); }
} catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } }
//按用户姓名查找用户 public void query(String name1){ try { System.out.println("\n【查找用户】"); String sql="select * from userInfo where name = ?"; PreparedStatement A=con.prepareStatement(sql); A.setString(1, name1); ResultSet rs = A.executeQuery(); int check=0; while(rs.next()){//如果对象中有数据,就会循环打印出来 String na=rs.getString(1); String key=rs.getString(2); System.out.println("用户名: "+na+" 密码: "+key); check=1;
} if(check==0) { System.out.println("该用户不存在!"); } } catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } }
//删除一个用户记录 public void delete(String name1){ try { System.out.println("\n【删除用户】"); String sql="delete from userInfo where name = ?"; PreparedStatement A=con.prepareStatement(sql); A.setString(1, name1); int check=A.executeUpdate(); if(check==1) { System.out.println("已删除该用户!"); } else { System.out.println("该用户不存在!"); }
} catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } }
//update()方法:更新用户信息,比如:修改密码。 public void updata(String name1,String newpassword){ try { System.out.println("\n【修改用户密码】"); String sql="update userInfo set password = ? where name = ?"; PreparedStatement A=con.prepareStatement(sql); A.setString(1,newpassword); A.setString(2, name1); int check=A.executeUpdate(); if(check==1) { System.out.println("该用户的密码已修改!"); System.out.println("用户名: "+name1+" 密码: "+newpassword); } else { System.out.println("该用户不存在!"); } } catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } }
//queryAll()方法:遍历并显示所有用户信息。 public void queryAll(){ try { Statement stmt = con.createStatement(); //4. Statement对象执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。 ResultSet rs = stmt.executeQuery("select * from userInfo"); System.out.println("\n【遍历所有用户】"); System.out.println("用户名 密码"); int check=0; while(rs.next()){//如果对象中有数据,就会循环打印出来 String na=rs.getString(1); String key=rs.getString(2); System.out.println(" "+na+" "+key); check = 1; } if(check==0) { System.out.println("该表中没有用户!"); }
} catch (SQLException e) { e.printStackTrace(); }catch(Exception e) { e.printStackTrace(); } } } |
//类4. Text.java package DB; public class Text { public static void main(String[] args) throws Exception { UserDao userDao=new UserDao(); User use1=new User(); /*//添加用户*/ use1.setname("张三"); use1.setpassword("12345"); userDao.add(use1); use1.setname("李四"); use1.setpassword("666666"); userDao.add(use1); use1.setname("Mary"); use1.setpassword("0000"); userDao.add(use1); //查找用户 userDao.query("张三"); //删除用户 userDao.delete("张三"); userDao.delete("李四"); userDao.delete("Mary"); //修改用户密码 userDao.updata("张三", "54321"); //遍历 userDao.queryAll(); } } |
测试结果