dao

DAO层,Service层,Controller层、View层

帅比萌擦擦* 提交于 2020-03-18 08:25:57
一、DAO层: DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。 二、Service层: Service层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。 三、Controller层: Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。 四、View层: View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。 详细说明:

mybatis 生成Domain,Dao,xml文件

耗尽温柔 提交于 2020-03-17 01:05:07
mybatis Generaor 官网: http://www.mybatis.org/generator/index.html mybatis Generator 教程: http://blog.csdn.net/testcs_dn/article/details/77881776 myBatis Plus 官网:http://mp.baomidou.com/#/ mybatis Plus 官网: http://mp.baomidou.com/#/quick-start 案例: <!--mybatis 生成Mapper和POJO 依赖包--> <!--<dependency>--> <!--<groupId>org.mybatis.generator</groupId>--> <!--<artifactId>mybatis-generator-core</artifactId>--> <!--<version>1.3.7</version>--> <!--</dependency>--> <!--<dependency>--> <!--<groupId>org.mybatis</groupId>--> <!--<artifactId>mybatis</artifactId>--> <!--<version>3.5.0</version>--> <!--</dependency>-

MyBatis 的 DAO 接口跟 XML 文件里面的 SQL 是如何建立关系的

与世无争的帅哥 提交于 2020-03-16 12:49:22
MyBatis 会先 解析这些 XML 文件 ,通过 XML 文件里面的 命名空间 (namespace)跟 DAO 建立关系 ;然后 XML 中的每段 SQL 会有一个id 跟 DAO 中的接口进行关联。 首先我们要知道每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的, SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。 但 SqlSessionFactory 是一个接口,它里面其实就两个方法: openSession 、 getConfiguration 其中, openSession 方法是为了获取一个 SqlSession 对象,完成必要数据库增删改查功能。但是, SqlSessionFactory 属性太少了,所以需要 getConfiguration 的配合;来配置 mapper 映射文件、SQL 参数、返回值类型、缓存等属性。 /** * Creates an {@link SqlSession} out of a connection or a DataSource * * @author Clinton Begin */ public interface SqlSessionFactory { SqlSession openSession();

[Java] DAO设计模式

无人久伴 提交于 2020-03-14 12:40:55
背景 B/S(Browser/Server):浏览器/服务器架构,用于广域网 C/S(Client/Server):客户机/服务器架构,用于局域网 业务分析 前端 控制层 调用业务层 业务层(Business Object BO) 调用数据层实现业务操作 业务层需要明确地知道数据层的操作方法,但不需要知道它的具体实现 使用代理模式(动态代理)进行业务控制,Sprint、Struct框架中会提供 定义操作协议(接口) 定义业务实现类,控制数据库的打开和关闭,取得数据层接口对象,调用数据层操作 定义业务工厂类,用于供控制层实例化,隐藏具体实现 数据层(Data Access Object DAO,持久层) 把具体的业务“翻译”成数据库的原子操作(增删改查) 定义接口,对业务层隐藏子类,一个数据表对应一个接口 定义简单Java类(POJO),对数据表中的数据进行包装,以便在不同层之间传递数据 定义实现类,一个类实现一个接口,类中一个方法实现一个具体的SQL操作 定义工厂类,用于其它层实例化接口对象,隐藏具体实现 数据库 实例 功能 连接mysql,为雇员表增加一行数据 项目结构 项目代码 数据库连接类 -- DatabaseConnection.java 1 package dbc; 2 3 import java.sql.Connection; 4 import java.sql

IOC和AOP使用拓展

杀马特。学长 韩版系。学妹 提交于 2020-03-13 02:04:55
多种方式实现依赖注入 构造注入 编写测试类 public class UserServiceImpl implements UserService { // 声明接口类型的引用,和具体实现类解耦合 private UserDao dao; // 无参构造 public UserServiceImpl() { } // 用于为dao属性赋值的构造方法 public UserServiceImpl(UserDao dao) { this.dao = dao; } public void addNewUser(User user) { // 调用用户DAO的方法保存用户信息 dao.save(user); } } 在使用设值注入时,Spring通过JavaBean无参构造方法实例化对象,当我们编写带参构造方法后,java虚拟机不会再提供默认的无参构造方法,为了保证使用的灵活性,建议自行添加一个无参构造方法 配置文件代码如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www

最简单的PHP MVC留言本实例(一)

折月煮酒 提交于 2020-03-10 09:52:26
这个小程序一共包含6个文件,其中index.php是程序入口、post.htm是留言表单、在lib文件夹里Model、View 、Controller三个文件分别实现MVC,DataAccess是一个简单的数据库访问类。 复制PHP内容到剪贴板 PHP代码: <?php /** * 一个用来访问My SQL 的类 * 仅仅实现演示所需的基本功能,没有容错等 * 代码未作修改,只是把注释翻译一下,加了点自己的体会 */ class DataAccess { var $db ; //用于存储数据库连接 var $query ; //用于存储查询源 //! 构造 函数 . /** * 创建一个新的DataAccess对象 * @param $host 数据库服务器名称 * @param $user 数据库服务器用户名 * @param $pass 密码 * @param $db 数据库名称 */ function __construct ( $host , $user , $pass , $db ) { $this -> db = mysql _pconnect ( $host , $user , $pass ); //连接数据库服务器 mysql_select_db ( $db , $this -> db ); //选择所需数据库 //特别注意$db和$this->db的区别 /

数组在dao中如何操作以及怎么样把String类型的数组转换成int类型的数组呢?

与世无争的帅哥 提交于 2020-03-10 08:25:21
我要做的功能是:权限管理(修改用户所拥有的菜单),以上问题是我遇到的困难并解决。 思路: 1.获取所选中的菜单ID,2.删除该角色ID的角色菜单中间表,3.新增 该角色ID的角色菜单中间表 接口: //增加角色菜单中间表 public int addRoleMenu(int roleId, int[] menuIds) throws Exception; 数组在dao中如何操作: @Override public int addRoleMenu(int roleId, int[] menuIds) throws Exception { //增加角色菜单中间表 String sql="INSERT INTO T_ROLE_MENU(ROLE_ID,MENU_ID) VALUES(?,?)"; Object[][]params=new Object[menuIds.length][]; for(int i=0;i<menuIds.length;i++) { params[i]=new Object[2]; params[i][0]=roleId; params[i][1]=Integer.valueOf(menuIds[i]); } return runner.batch(JDBCUtil.getConnection(), sql, params).length; } 应该也可以这样做

mybatis配置与使用

*爱你&永不变心* 提交于 2020-03-08 19:26:13
一:Mybatis简介 1.名称由来 Mybatis原名叫ibatis.Mybatis一开始属于Apache,2010年从Apache转移到了GoogleCode这个组织中. 2.Mybatis概念 Mybatis是一种基于ORM模式的,作用于Dao层的轻量级框架.和Hibernate类似,也支持各种SQL语句,也支持存储过程和高级映射等操作. 3.Mybatis优点 Mybatis比Hibernate更为轻量级; Mybatis几乎消除了所有的JDBC代码和参数的手工设置. 4.Mybatis特点 Mybatis具有比较强大的动态语句功能.而且Mybatis在JavaBean和表之间的映射关系建立方面,也更加的便捷灵活. 5.Mybatis的核心API ①.SqlSessionFactoryBuilder: SqlSessionFactoryBuilder是整个Mybatis框架的入口,提供了一个build()方法,用来创建SqlSessionFactory对象. SqlSessionFactoryBuilder对象一般是在xml文件中通过configuration节点来进行配置. ②.SqlSessionFactory: 用来创建SqlSession.注意:该对象一般只用创建一个对象就可以,也就是不要重复创建该对象! ③.SqlSession:

spring框架IOC设值注入

可紊 提交于 2020-03-07 13:16:14
spring以动态的形式来管理对象,注入分为两种: 1. 设置注入:直观 自然 2.构造注入:可以在构造器中决定依赖顺序 以下就是示例: 1.User实体类 package com.domain; import java.io.Serializable; /** * * @author Mr * 实体类 */ public class User implements Serializable { private Integer id; private String uname; private String upwd; private String email; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpwd() { return upwd; } public void setUpwd(String upwd) { this.upwd = upwd; } public String getEmail() {

Maven二

跟風遠走 提交于 2020-03-05 15:22:16
1 回顾 1.1 M aven的好处 节省空间 对jar包做了统一管理 依赖管理 一键构建 可跨平台 应用在大型项目可提高开发效率 1.2 M aven安装部署配置 1.3 M aven的仓库 本地仓库 远程仓库(私服) 中央仓库 1.4 添加依赖 从网络上搜索 在本地重建索引,以索引的方式搜索 1.5 项目构建 1.6 依赖范围 Compile struts2 框架jar Provided jsp-api.jar 重点 Runtime 数据库驱动包 Test junit.jar 1.7 总结 <modelVersion> 坐标 GAV <groupId>cn.itcast</groupId> <artifactId>ssh</artifactId> <version>0.0.1-SNAPSHOT</version> Packaging 打包方式 Jar war pom <dependencies> <dependency> <build> 里面放的是插件 <plugins> <plugin> 2 整合ssh框架 2.1 依赖传递 只添加了一个struts2-core依赖,发现项目中出现了很多jar, 这种情况 叫 依赖传递 2.2 依赖版本冲突的解决 1、 第一声明优先原则 <dependencies> <!-- spring-beans-4.2.4 -->