首先在数据库中建好一个表。

然后创建一个MsterDao类的接口

 package com.beiwo.epte.dao;

 import com.beiwo.epte.entity.Master;

 public interface MasterDao extends BaseDao{

     /**
* 保存主人
* @param pet
* @return
*/
int save(Master master); /**
* 删除主人
* @param pet
* @return
*/
int del(Master master); /**
* 更新主人
* @param pet
* @return
*/
int update(Master master); /**
* 根据Master对象进行查询
* @param master
* @return
*/
Master findMaster(Master master); }

然后创建这个MasterDao的实现类

 package com.beiwo.epte.dao.impl;

 import java.sql.Connection;
import java.sql.PreparedStatement; import com.beiwo.epte.dao.MasterDao;
import com.beiwo.epte.entity.Master;
import com.beiwo.epte.util.DBUtils;
import java.sql.ResultSet; public class MasterDaoMySqllmpl extends BaseDaoImpl implements MasterDao { @Override
public int save(Master master) {
// TODO Auto-generated method stub
return 0;
} @Override
public int del(Master master) {
// TODO Auto-generated method stub
return 0;
} @Override
public int update(Master master) {
// TODO Auto-generated method stub
return 0;
} @Override
public Master findMaster(Master master) {
Master master2 = null; Connection connection = null;
PreparedStatement pastmt = null;
ResultSet rSet = null; String sql = "SELECT * FROM master WHERE loginId=? AND password=?"; try {
connection = DBUtils.getConn();
pastmt = connection.prepareStatement(sql);
pastmt.setString(1, master.getLoginId());
pastmt.setString(2, master.getPassword()); rSet = pastmt.executeQuery();
//指针下移
if (rSet.next()) {
master2 = new Master();
master2.setId(rSet.getInt("id"));
master2.setLoginId(rSet.getString("loginId"));
master2.setPassword(rSet.getString("password")); }
} catch (Exception e) {
// TODO: handle exception
} finally {
DBUtils.closeAll(rSet, pastmt, connection); } return master2;
} }

创建Master的实体类

 package com.beiwo.epte.entity;

 import java.io.Serializable;

 public class Master implements Serializable{

     private int id;  //ID
private String loginId;//用户名
private String password;//密码
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLoginId() {
return loginId;
}
public void setLoginId(String loginId) {
this.loginId = loginId;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} }

数据库的帮助类

 package com.beiwo.epte.util;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ResourceBundle; /**
* 数据库的帮助类
*
* @author beiwo
*
*/
public class DBUtils { private static String driverClass;
private static String url;
private static String user;
private static String password; static{
ResourceBundle rb=ResourceBundle.getBundle("jdbc");
driverClass=rb.getString("driverClass");
url=rb.getString("url");
user=rb.getString("user");
password=rb.getString("password"); try {
Class.forName(driverClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} public static Connection getConn() throws Exception {
return DriverManager.getConnection(url, user, password);
} public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
//關閉資源
if(null!=rs){
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(null!=stmt){
try {
stmt.close();
} catch (Exception e) {
e.printStackTrace();
}
} if(null!=conn){
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} }

然后再创建一个接口声明一个登陆的方法

 package com.beiwo.epte.service;

 public interface MsterService {

     //登陆
public void login(); }

然后创建一个实现类来实现以下这个登陆的方法

 package com.beiwo.epte.service.impl;

 import java.util.Scanner;

 import com.beiwo.epte.dao.MasterDao;
import com.beiwo.epte.dao.impl.MasterDaoMySqllmpl;
import com.beiwo.epte.entity.Master;
import com.beiwo.epte.service.MsterService; public class MasterServiceImpl implements MsterService{ Master master = null;
@Override
public void login() { Scanner scanner = new Scanner(System.in); System.out.println("请输入用户名:");
String loginId = scanner.next(); System.out.println("请输入密码:");
String password = scanner.next(); MasterDao masterDao = new MasterDaoMySqllmpl();
Master master2 = new Master();
master2.setLoginId(loginId);
master2.setPassword(password); master=masterDao.findMaster(master2); if (null!=master) {
System.out.println("登陆成功");
} else {
System.out.println("登陆失败");
} }
}

最后创建一个测试类来调用一下这个方法,只要是输入正确都可以登陆成功。

 package com.beiwo.epte.test;

 import org.junit.Test;

 import com.beiwo.epte.service.MsterService;
import com.beiwo.epte.service.impl.MasterServiceImpl; public class TestMasterDao {
@Test
public void testLogin(){
MsterService masterService = new MasterServiceImpl();
masterService.login();//调用登陆的方法 }
}

DAO模式应用实例的更多相关文章

  1. 2、原生jdbc的dao模式

    一.dao模式 (data access object)1.作用:持久层,专门操作数据的层次结构,不掺杂任何的业务和其他内容2.dao组成部分: a.数据库工厂类 b.数据实体类 javabean p ...

  2. Java实验项目六——使用DAO模式实现对职工表的操作

    Program: 利用JDBC访问职工信息表,实现对职工信息的添加.更新.删除.按照职工号查找.查找全部职工的功能. Description:在这里我采用了DAO设计模式完成对职工表的操作,下面介绍一 ...

  3. 在WildFly中运行多个standalone模式的实例

      WildFly作为一款优秀的EJB容器,其前身为JBoss AS.JBoss作为一款开源的应用服务器,被广泛的应用在各种项目当中.假设我们现在有这样一个项目,他是以standalone的模式运行在 ...

  4. 数据持久化以及DAO模式的简单使用

    持久化:(是将程序中的数据在瞬时状态和持久状态间转换机制)        即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然 ...

  5. 创建DAO模式的步骤

    1.建立数据库epet 2.创建实体类,和相对应的数据库是对应的 3.创建Dao的基类接口类BaseDao 4.创建Dao的实现类BaseDaoImpl 5.创建具体表的Dao类 6.创建具体表的Da ...

  6. Java笔记——面向接口编程(DAO模式)

    1.DAO模式  DAO(Data Access Object)模式就是写一个类,把访问数据库的代码封装起来.DAO在数据库与业务逻辑(Service)之间.     l  实体域,即操作的对象,例如 ...

  7. Java Dao模式通过JDBC连接数据库的操作

    Java程序访问数据库: 1.获取数据库厂商提供的驱动(jdbc接口的实现类) 如ojdbc14.jar——Oracle数据库驱动jar包 mysql-connector-java-5.1.8-bin ...

  8. jdbc之二:DAO模式

    详细代码请参见 https://code.csdn.net/jediael_lu/daopattern 1.创建Dao接口. package com.ljh.jasonnews.server.dao; ...

  9. java数据库编程之DAO模式

    第八章:DAO模式 8.1:JDBC封装 为了提高代码的维护性和扩展性,我们使用JDBC进行封装数据, 先定义统一的API,将操作数据的代码抽象到接口中,业务逻辑代码只需要调用这些接口的实现类的对象, ...

随机推荐

  1. Excel 读取字符串引发的问题

    将EXCEL数据导出的时候如果同一列数据中既有文字,又有数字!读取时一列中要么文字丢失只剩下数字,要么数字丢失,只剩下文字,这是由第一行的数据类型决定的.出现这种问题是由于数据类型不统一造成的. 连接 ...

  2. mac版微信web开发者工具(小程序开发工具)无法显示二维码 解决方案

    微信小程序概念的提出,绝对可以算得上中国IT界惊天动地的一件大事,这可能意味着一场新的开发热潮即将到来, 我也怀着激动的心情准备全身心投入其中,不过截止目前,在官方网站上下载的最新版本都无法使用,打开 ...

  3. 判断Activity是否正在退出 isFinishing()

    boolean android.app.Activity.isFinishing()           Added in API level 1 Check to see whether this ...

  4. C# webbrowser实现真正意义上的F5刷新

    关于webbrowser的刷新在C#中有提供方便的方法: webbrowser.refresh(); 但是有时候会发现,不给力啊 那怎么办? 还有一招: webBrowser1.Document.Ex ...

  5. 关于Android 打开新的Activity 虚拟键盘的弹出与不弹出

    关于Android 打开新的Activity 虚拟键盘的弹出与不弹出 打开Activity 时  在相应的情况 弹出虚拟键盘 或者 隐藏虚拟键盘 会给用户非常好的用户体验 , 实现起来也比较简单 只需 ...

  6. spring JPA 动态查询

    没什么好说的,记住就行. 下面是在Service中的方法 Page<TStaff> staffs=dao.findAll(new Specification<TStaff>() ...

  7. LeetCode 350. Intersection of Two Arrays II

    Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1] ...

  8. 【解决】org.apache.hadoop.util.Shell$ExitCodeException: /bin/bash: line 0: fg: no job control

    [环境信息] Hadoop版本:2.4.0 客户端OS:Windows Server 2008 R2 服务器端OS:CentOS 6.4 [问题现象] 在通过Windows客户端向Linux服务器提交 ...

  9. 最短路模板(Dijkstra & Dijkstra算法+堆优化 & bellman_ford & 单源最短路SPFA)

    关于几个的区别和联系:http://www.cnblogs.com/zswbky/p/5432353.html d.每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个(草儿家到 ...

  10. nginx学习笔记

    我的工作环境是 Debian . 在 Debian 上安装 ngingx 和其他 linux 安装基本相同. 在配置 hello world 之前,没有头绪,看了很多资料.最后 "https ...