数据库用户操作

  1. 编写测试类Test.java,测试以下功能,该类模板如下::
    1. 添加一个新用户
    2. 按新用户名查询用户
    3. 修改用户密码
    4. 删除新用户
    5. 查询并显示所有用户

//类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();

}

}

测试结果

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值