Java JDBC

  1 public class DAO {
  2     
  3     //表名
  4     public static String TABLENAME = "USERLOGIN";
  5     //创建表
  6     public static boolean createTable(){
  7         String sql = "CREATE TABLE "+TABLENAME+"(ID INTEGER PRIMARY KEY AUTO_INCREMENT,NAME VARCHAR(3) NOT NULL,PWD VARCHAR(15) NOT NULL)";
  8         Connection conn = getConnection();
  9         
 10         Statement st = null;
 11         try {
 12             st = conn.createStatement();
 13             int row = st.executeUpdate(sql);
 14             
 15             //创建成功,返回受影响的行数,如果为-1,则创建不成功
 16             System.out.println("创建表成功:"+row);
 17             if(row!=-1){
 18                 return true;
 19             }
 20         } catch (SQLException e) {
 21             // TODO Auto-generated catch block
 22             e.printStackTrace();
 23         }
 24             
 25         
 26         try {
 27             st.close();
 28         } catch (SQLException e) {
 29             // TODO Auto-generated catch block
 30             e.printStackTrace();
 31         }
 32         return false;
 33     }
 34     
 35     //创建JDBC URL
 36     static String jdbc = "jdbc:mysql://localhost:3306/student?user=root&password=&characterEncoding=utf-8";
 37     public static Connection getConnection(){
 38         
 39         //加载jdbc驱动
 40         try {
 41             //驱动地址全名,包名+类名
 42             Class.forName("com.mysql.jdbc.Driver");
 43             
 44             //连接数据库
 45             Connection conn = DriverManager.getConnection(jdbc);
 46             return conn;
 47 //            if(conn!=null){
 48 //                System.out.println("连接成功");
 49 //            }else{
 50 //                System.out.println("连接失败");
 51 ////            }
 52         } catch (Exception e) {
 53             // TODO Auto-generated catch block
 54             e.printStackTrace();
 55         }
 56         return null;
 57     }
 58     
 59     //增  删  改   不带参
 60     public static boolean 执行(String sql) throws SQLException{
 61         Connection conn = getConnection();
 62         Statement statement = conn.createStatement();
 63         int row = statement.executeUpdate(sql);
 64         System.out.println("受影响行:"+row);
 65         if(row>0){
 66             
 67             return true;
 68         }
 69         conn.close();
 70         return false;
 71     }
 72     //增  删  改   带参
 73     public static boolean 执行(String sql,String[] args) throws SQLException{
 74         Connection conn = getConnection();
 75         PreparedStatement pst = conn.prepareStatement(sql);
 76         for (int i = 0; i < args.length; i++) {
 77             pst.setString(i+1, args[i]);
 78         }
 79         int row = pst.executeUpdate();
 80         System.out.println("受影响行:"+row);
 81         if(row>0)
 82             return true;
 83         conn.close();
 84         return false;
 85     }
 86     
 87     //查询  不带参
 88     public static ResultSet 查询(String sql) throws SQLException{
 89         Connection conn = getConnection();
 90         Statement st = conn.createStatement();
 91         ResultSet rs = st.executeQuery(sql);
 92         conn.close();
 93         return rs;
 94     }
 95     //查询  带参
 96     public static ResultSet 查询(String sql,String[] args) throws SQLException{
 97         Connection conn = getConnection();
 98         PreparedStatement pst = conn.prepareStatement(sql);
 99         for (int i = 0; i < args.length; i++) {
100             pst.setString(i+1, args[i]);
101         }
102         ResultSet rs = pst.executeQuery();
103         conn.close();
104         return rs;
105     }
106     
107 }
DAO.java
 1 public class User {
 2     private String id;
 3     private String name;
 4     private String pwd;
 5     private String age;
 6     private String sex;
 7     private String sign;
 8 
 9     public User(String name, String pwd) {
10         super();
11         this.name = name;
12         this.pwd = pwd;
13     }
14 
15     public User(String id, String name, String pwd, String age, String sex,
16             String sign) {
17         super();
18         this.id = id;
19         this.name = name;
20         this.pwd = pwd;
21         this.age = age;
22         this.sex = sex;
23         this.sign = sign;
24     }
25 
26     @Override
27     public String toString() {
28         return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + ", age="
29                 + age + ", sex=" + sex + ", sign=" + sign + "]";
30     }
31 
32     public String getId() {
33         return id;
34     }
35 
36     public void setId(String id) {
37         this.id = id;
38     }
39 
40     public String getName() {
41         return name;
42     }
43 
44     public void setName(String name) {
45         this.name = name;
46     }
47 
48     public String getPwd() {
49         return pwd;
50     }
51 
52     public void setPwd(String pwd) {
53         this.pwd = pwd;
54     }
55 
56     public String getAge() {
57         return age;
58     }
59 
60     public void setAge(String age) {
61         this.age = age;
62     }
63 
64     public String getSex() {
65         return sex;
66     }
67 
68     public void setSex(String sex) {
69         this.sex = sex;
70     }
71 
72     public String getSign() {
73         return sign;
74     }
75 
76     public void setSign(String sign) {
77         this.sign = sign;
78     }
79 
80 }
User.java
 1 public interface IUser {
 2     ResultSet 查询用户(User user);
 3     
 4     boolean 注册用户(User user);
 5     
 6     boolean 登录用户(User user);
 7     
 8     boolean 修改用户(User user,String pwd);
 9     
10     boolean 删除用户(User user);
11 }
IUser.java
  1 public class UserDAO extends DAO implements IUser{
  2 
  3     
  4     public UserDAO(){
  5         createTable();
  6         
  7     }
  8     
  9     @Override
 10     public boolean 注册用户(User user) {
 11         String sql2 = "INSERT INTO "+TABLENAME+"(NAME,PWD) VALUES(?,?)";
 12         String[] args2 = new String[]{user.getName(),user.getPwd()};
 13         
 14         try {
 15             boolean b = 执行(sql2,args2);
 16             return b;
 17         } catch (SQLException e) {
 18             System.out.println("注册失败");
 19         }
 20         return false;
 21     }
 22 
 23     //查询,然后再遍历
 24     @Override
 25     public boolean 登录用户(User user) {
 26         //根据名字查询
 27         ResultSet rs = 查询用户(user);
 28                 
 29         try {
 30             while(rs.next()){
 31                 String name = rs.getString("NAME");
 32                 String pwd = rs.getString("PWD");
 33                 if(name.equals(user.getName()) && pwd.equals(user.getPwd())){
 34                     System.out.println("登录成功,欢迎您!"+name);
 35                     return true;
 36                 }else{
 37                     System.out.println("登录失败,密码错误");
 38                     return false;
 39                 }
 40                 
 41             }
 42         } catch (SQLException e) {
 43             // TODO Auto-generated catch block
 44             e.printStackTrace();
 45         }
 46         //查询不到,提示先注册
 47         System.out.println("登录失败!请先注册");
 48             
 49         
 50         return false;
 51     }
 52 
 53     @Override
 54     public boolean 修改用户(User user,String pwd) {
 55         //用户名不允许修改,只允许修改密码
 56         String sql = "UPDATE "+TABLENAME+" SET PWD=? WHERE NAME=?";
 57         String[] args = new String[]{pwd,user.getName()};
 58         
 59         try {
 60             boolean b = 执行(sql,args);
 61             System.out.println("修改成功!");
 62             return b;
 63             
 64         } catch (SQLException e) {
 65             // TODO Auto-generated catch block
 66             e.printStackTrace();
 67         }
 68         
 69         return false;
 70     }
 71 
 72     @Override
 73     public boolean 删除用户(User user) {
 74         //非管理员,直接删除
 75         String sql = "DELETE * FROM "+TABLENAME+" WHERE NAME=? AND PWD=?";
 76         String[] args = new String[]{user.getName(),user.getPwd()};
 77 
 78         try {
 79             boolean b = 执行(sql,args);
 80             System.out.println("删除成功");
 81             return b;
 82         } catch (SQLException e) {
 83             // TODO Auto-generated catch block
 84             e.printStackTrace();
 85         }
 86         
 87         return false;
 88     }
 89 
 90     @Override//根据名字查询
 91     public ResultSet 查询用户(User user) {        
 92         String sql = "SELECT * FROM "+TABLENAME+" WHERE NAME=?";
 93         String[] args = new String[]{user.getName()};
 94         try {        
 95             ResultSet rs = 查询(sql,args);
 96             if(rs!=null){
 97                 return rs;
 98             }
 99 
100         } catch (SQLException e) {
101             // TODO Auto-generated catch block
102             e.printStackTrace();
103         }
104         return null;
105     }
106     
107     
108 }
UserDAO.java
 1 public class UserDAOUpadate extends UserDAO{
 2     
 3     
 4     public UserDAOUpadate() {
 5         super();
 6     }
 7     
 8     //用户注册
 9     public boolean 用户注册(User user){
10         //先查询是否已存在,根据名字
11         ResultSet rs = 查询用户(user);
12         if(rs==null){
13             //不存在,,直接注册
14             boolean b = 注册用户(user);
15             return b;
16         }
17         
18         return false;
19     }
20     
21     //用户登录,登录成功,返回用户信息
22     public void 用户登录(User user){
23         if(登录用户(user))        
24             System.out.println(user);
25         
26     }
27     
28     //修改密码
29     public boolean 用户修改密码(User user,String pwd){
30         if(登录用户(user)){
31             if(pwd.equals(user.getPwd())){
32                 System.out.println("密码不能与原始密码相同!");
33                 return false;
34             }
35             boolean b = 修改用户(user,pwd);
36             return b;
37         }
38         
39         return false;
40     }
41     
42     //管理员删除其他账户
43     public boolean 用户删除(User user,boolean isDelete){
44         //账户是管理员,不允许删除
45         if("admin".equals(user.getName())){
46             System.out.println("管理员账户无法删除");
47             return false;
48         }
49         //非管理账户直接删除        
50         if(isDelete){    
51             boolean b = 删除用户(user);
52             return b;
53         }
54         return false;
55     }
56     
57     
58     
59 
60 }
UserUpdate.java

 

posted on 2016-10-18 09:44  语风6649  阅读(181)  评论(0编辑  收藏  举报

导航