“商苑面馆:Java命令行版之 Dao层(MySQL实现)”的版本间的差异
来自CloudWiki
(→添加第1个方法:verify) |
(→编写测试代码) |
||
第161行: | 第161行: | ||
<nowiki> | <nowiki> | ||
− | + | User u1 = new User("ma","123456"); | |
− | userset.verify( | + | UserDaoSQL userset =new UserDaoSQL(); |
− | </nowiki> | + | userset.verify(u1.getName(),u1.getPwd()); |
+ | userset.con.close();//关闭数据库</nowiki> | ||
− | [[文件:java7- | + | [[文件:java7-40.png]] |
2019年5月10日 (五) 04:15的版本
目录
Dao层
前期准备
在entity包下建立User类:
package entity; public class User { //成员变量 public String name; public String password; //构造方法 public User(){ } public User(String name,String password ){ this.name=name; this.password=password; } //读方法 public String getname(){ return this.name; } //写方法 public boolean setName(String s){ this.name = s; return true; } //获取用户密码 public String getPwd(){ return this.password; } //写方法 public boolean setPwd(String p){ this.password = p; return true; } }
实现步骤
建立接口UserDao
在包dao下建立抽象接口UserDao
package dao; import entity.User; public interface UserDao { public boolean addUser(User u);//抽象方法1:增加用户,接口的实现类必须实现这个方法 public boolean verify(String name, String pwd);//验证用户名和密码是否一致 public User search(String s);//抽象方法2:搜索商品,接口的实现类必须实现这个方法 public String toString(); //抽象方法3:展示所有商品,接口的实现类必须实现这个方法 }
建立接口的实现类
接口实现类可以用多种方式实现,ArrayList,LinkedList, MySQL等
这里我们用MySQL实现
建立接口实现类UserDaoMySQL
package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.*; import entity.User; public class UserDaoSQL implements UserDao{ Connection con=null; public UserDaoSQL(){ con = getConn(); } public static void main(String[] args) { // TODO Auto-generated method stub } }
编写连接方法getConn
这个方法的作用主要是进行数据库的初始连接:
private static Connection getConn() { // JDBC 驱动名及数据库 URL final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; final String DB_URL = "jdbc:mysql://localhost:3306/cloud"; // 数据库的用户名与密码,需要根据自己的设置 final String USER = "root"; final String PASS = "000000"; Connection conn = null; try { Class.forName(JDBC_DRIVER); //classLoader,加载对应驱动 conn = (Connection) DriverManager.getConnection(DB_URL, USER, PASS); System.out.println("MySQL连接成功!"); } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); } catch (SQLException e) { System.out.println(e.getMessage()); } return conn; }
添加第1个方法:verify
public boolean verify(String username, String password) { try { Connection con = this.con;//建立数据库的连接 ResultSet rs = null; //建立一个空的结果集 //1.创建PreparedStatement 对象,让它与一条SQL模板绑定; String sql = "select * from user where name=? and password=?"; PreparedStatement pstmt = (PreparedStatement) con.prepareStatement(sql); //使用2. setXXX()系列方法为sql命令设置值 pstmt.setString(1, username);// pstmt.setString(2, password); //setInt,setFloat //3.执行查询 rs = pstmt.executeQuery();// if(rs.next()) { System.out.println("欢迎" + rs.getString("name")); } else { System.out.println("用户名或密码错误!"); } pstmt.close(); }catch (SQLException e) { System.out.println(e.getMessage()); } return false; }
编写测试代码
在UserDaoSQL类的main方法中编写测试代码:
User u1 = new User("ma","123456"); UserDaoSQL userset =new UserDaoSQL(); userset.verify(u1.getName(),u1.getPwd()); userset.con.close();//关闭数据库