JAVA OOP 第九章 数据访问层 (java的分层)

来源:互联网 发布:广州网络维护maxingit 编辑:程序博客网 时间:2024/06/05 23:47
package cn.jbit.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import org.junit.Test;public class BaseDao {Connection con = null;PreparedStatement ps = null;    public ResultSet rs=null;private static final String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";private static final String url = "jdbc:sqlserver://localhost:1433;DatabaseName=SQLServer2008";private static final String username = "sa";private static final String pwd = "1";public Connection getCon()throws Exception{Class.forName(driver);if(con==null||con.isClosed()){        con = DriverManager.getConnection(url, username, pwd);}return con;}//单测查询@Testpublic void testQuery() throws Exception{String sql="select * from  pet";ResultSet rs=executeQuery(sql);if(rs!=null){while(rs.next()){String name=rs.getString("name");System.out.println(name);}}}//执行查询public ResultSet executeQuery(String sql,Object... obje) throws Exception{con=getCon();ps=con.prepareStatement(sql);for(int i=0;i<obje.length;i++){ps.setObject(i+1, obje[i]);}rs=ps.executeQuery();return rs;}//测试修改@Testpublic void testupdate() throws Exception{int count=execteUpdate("update Pet set name='美美' where name='咔咔'");System.out.println(count);}//执行修改public int execteUpdate(String sql,Object...object) throws Exception{con=getCon();ps=con.prepareStatement(sql);for(int i=0;i<object.length;i++){ps.setObject(i+1, object[i]);}int count=ps.executeUpdate();return count;}//单测增加@Testpublic void testadd() throws Exception{int count=execteadd("insert into Pet values(2,'多多',2,90,70,2016-4-1,1)");System.out.println(count);}//执行增加public int execteadd(String sql,Object...object) throws Exception{con=getCon();ps=con.prepareStatement(sql);ps.executeUpdate();for(int i=0;i<object.length;i++){ps.setObject(i+1, object[i]);}int count=ps.executeUpdate();return count;}//执行删除@Testpublic void testdelete() throws Exception{int count=exectedelete("delete from Pet where name='多多'");System.out.println(count);}//执行删除public int exectedelete(String sql,Object...object) throws Exception{con=getCon();ps=con.prepareStatement(sql);ps.executeUpdate();for(int i=0;i<object.length;i++){ps.setObject(i+1, object[i]);}int count=ps.executeUpdate();return count;}public void closeAll() throws Exception{if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(con!=null){con.close();}}//}

接口 3个package cn.jbit.dao;import cn.jbit.entity.Master;public interface MasterDao {public Master findMaster(int id)throws Exception;}package cn.jbit.dao;import java.util.List;import cn.
实现接口package cn.jbit.impl;import java.sql.ResultSet;import cn.jbit.dao.BaseDao;import cn.jbit.dao.MasterDao;import cn.jbit.dao.typedao;import cn.jbit.entity.Master;import cn.jbit.entity.type;public class MasterDaoSQLServerImpl extends BaseDao implements MasterDao {@Overridepublic Master findMaster(int id) throws Exception {String sql = "select * from master where loginid=?";ResultSet rs = this.executeQuery(sql, id);Master mas = null;if (rs != null) {if (rs.next()) {mas = new Master();mas.setLoginid(rs.getInt("loginid"));mas.setPassword(rs.getInt("password"));mas.setId(rs.getInt("id"));}}return mas;}}

package cn.jbit.impl;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import cn.jbit.dao.BaseDao;import cn.jbit.dao.Petdao;import cn.jbit.entity.Pet;public class PetDaoSQLServer extends BaseDao implements Petdao {public List<Pet> select() throws Exception {List<Pet> list = new ArrayList<Pet>();String sql = "select * from Pet";ResultSet rs = this.executeQuery(sql);if (rs != null) {while (rs.next()) {Pet mas = new Pet();mas.setName(rs.getString("name"));mas.setId(rs.getInt("id"));list.add(mas);}}return list;}@Overridepublic int add(int id, int masterid,String name) throws Exception {String sqlString="insert into Pet values(?,?,?,default,default,default,default)";int execteUpdate = this.execteUpdate(sqlString, masterid,name,id);return execteUpdate;}}

package cn.jbit.impl;import java.sql.ResultSet;import java.util.ArrayList;import java.util.List;import cn.jbit.dao.BaseDao;import cn.jbit.dao.typedao;import cn.jbit.entity.type;public class TypeDaoSQLSererImpl extends BaseDao implements typedao {@Overridepublic List<type> select() throws Exception {List<type> list = new ArrayList<type>();String sql = "select * from type";ResultSet rs = this.executeQuery(sql);if (rs != null) {while (rs.next()) {type mas = new type();mas.setName(rs.getString("name"));mas.setId(rs.getInt("id"));list.add(mas);}}return list;}}

业务逻辑层package cn.jbit.service;import java.util.List;import java.util.Scanner;import cn.jbit.dao.MasterDao;import cn.jbit.dao.Petdao;import cn.jbit.dao.typedao;import cn.jbit.entity.Master;import cn.jbit.entity.Pet;import cn.jbit.entity.type;import cn.jbit.impl.MasterDaoSQLServerImpl;import cn.jbit.impl.PetDaoSQLServer;import cn.jbit.impl.TypeDaoSQLSererImpl;public class Manager {MasterDao mdao = new MasterDaoSQLServerImpl();Scanner input = new Scanner(System.in);typedao tdao = new TypeDaoSQLSererImpl();Petdao pdao = new PetDaoSQLServer();String typename;public void show() throws Exception {System.out.println("============欢迎进入宠物商店============");System.out.println("请输入登录名:");int loginid = input.nextInt();Master longin = mdao.findMaster(loginid);System.out.println("请输入密码:");int pwd = input.nextInt();if(longin!=null){if (pwd==longin.getPassword()) {System.out.println("登录成功!");List<type> select = tdao.select();System.out.println("请选择宠物类型:");for (type item : select) {System.out.print(item.getName() + "|");}typename = input.next();for (type type : select) {if (typename.equals(type.getName())){System.out.print("請輸入暱稱:");    String name=input.next();int add = pdao.add(type.getId(), loginid, name);if(add>0)System.out.println("領養成功");break;}}}else {System.out.println("密码错误");}}else{System.out.println("沒有此用戶");}} }

jbit.entity.Pet;public interface Petdao {public int add(int id,int masterid,String name) throws Exception;}package cn.jbit.dao;import java.util.List;import cn.jbit.entity.type;public interface typedao {public List<type> select()throws Exception;}

0 0
原创粉丝点击