DAO模式应用实例
首先在数据库中建好一个表。
然后创建一个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模式应用实例的更多相关文章
- 2、原生jdbc的dao模式
一.dao模式 (data access object)1.作用:持久层,专门操作数据的层次结构,不掺杂任何的业务和其他内容2.dao组成部分: a.数据库工厂类 b.数据实体类 javabean p ...
- Java实验项目六——使用DAO模式实现对职工表的操作
Program: 利用JDBC访问职工信息表,实现对职工信息的添加.更新.删除.按照职工号查找.查找全部职工的功能. Description:在这里我采用了DAO设计模式完成对职工表的操作,下面介绍一 ...
- 在WildFly中运行多个standalone模式的实例
WildFly作为一款优秀的EJB容器,其前身为JBoss AS.JBoss作为一款开源的应用服务器,被广泛的应用在各种项目当中.假设我们现在有这样一个项目,他是以standalone的模式运行在 ...
- 数据持久化以及DAO模式的简单使用
持久化:(是将程序中的数据在瞬时状态和持久状态间转换机制) 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘).持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然 ...
- 创建DAO模式的步骤
1.建立数据库epet 2.创建实体类,和相对应的数据库是对应的 3.创建Dao的基类接口类BaseDao 4.创建Dao的实现类BaseDaoImpl 5.创建具体表的Dao类 6.创建具体表的Da ...
- Java笔记——面向接口编程(DAO模式)
1.DAO模式 DAO(Data Access Object)模式就是写一个类,把访问数据库的代码封装起来.DAO在数据库与业务逻辑(Service)之间. l 实体域,即操作的对象,例如 ...
- Java Dao模式通过JDBC连接数据库的操作
Java程序访问数据库: 1.获取数据库厂商提供的驱动(jdbc接口的实现类) 如ojdbc14.jar——Oracle数据库驱动jar包 mysql-connector-java-5.1.8-bin ...
- jdbc之二:DAO模式
详细代码请参见 https://code.csdn.net/jediael_lu/daopattern 1.创建Dao接口. package com.ljh.jasonnews.server.dao; ...
- java数据库编程之DAO模式
第八章:DAO模式 8.1:JDBC封装 为了提高代码的维护性和扩展性,我们使用JDBC进行封装数据, 先定义统一的API,将操作数据的代码抽象到接口中,业务逻辑代码只需要调用这些接口的实现类的对象, ...
随机推荐
- APP跳到系统设置
//定位服务设置界面 NSURL *url = [NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]; if ([[UIApp ...
- <<软件测试实战>>读书笔记
软件测试基础 软件的复杂度已经超越了人的理解能力 1. 虽然高抽象的层次语言,程序框架,程序库等提高了人的生产力,但是还是需要开发者深入理解细节,可以减少开发时间,但是无法减少开发者学习整个技术栈的时 ...
- javascript判断某种元素是否进入可视区域
判断是否在指定的可视区域内,先用最简单的方式,比如整个页面为可视区域 找到几个关键因素: sTop= $(window).scrollTop(); //滚动条距顶部的高度 clientHeight= ...
- Easyui 小脚本
function addTab(subtitle, url, icon) { if (!$('#tabs').tabs('exists', subtitle)) { $('#tabs').tabs(' ...
- 从jQuery源码阅读看 dom load
最近两天不忙的时候再回过来研究一下jquery的源码,看到$(document).ready()时,深入的研究了一下dom的加载问题. 我们都知道,window.onload可以解决我们的js执行时机 ...
- 在Linux上编写C#程序
自从C#开源之后,在Linux编写C#程序就成了可能.Mono-project就是开源版本的C#维护项目.在Linux平台上使用的C#开发工具为monodevelop.安装方式如下: 首先需要安装一些 ...
- Esfog_UnityShader教程_UnityShader语法实例浅析
距离上次首篇前言已经有一段时间了,一直比较忙,今天是周末不可以再拖了,经过我一段时间的考虑,我决定这一系列的教程会避免过于深入细节,一来可以避免一些同学被误导,二来会避免文章过于冗长难读, 三来可以让 ...
- Phoenix -修复表索引
索引的修复可以通过2种方式,(关于pehoenix的索引的生命周期可以参考 https://community.hortonworks.com/articles/58818/phoenix-inde ...
- Mware vCenter Server 识别固态硬盘为(非SSD)是什么原因?
人工定义一下: 用root登录进ESXi控制台:esxcli storage nmp device list #列出储存清单esxcli storage nmp satp rule add -s VM ...
- js访问xml
从w3school中获取代码 <html> <head> <script type="text/javascript"> var xmlhttp ...