dao

29.Spring-基础.md

混江龙づ霸主 提交于 2020-02-02 03:56:28
目录 1.目的和作用 [toc] 2.概念 2.1框架的设计 2.2控制反转 2.3AOP [toc] 3. 3.1Spring六大模块 [toc] 1.目的和作用 解决对象的创建和以及对象依赖关系的! Struts与Hibernate可以做什么事? Struts, Mvc中控制层解决方案 可以进行请求数据自动封装、类型转换、文件上传、效验… Hibernate, 持久层的解决方案; 可以做到, 把对象保存到数据库, 从数据库中取出的是对象。 传统的开发模式 基于mvc模式进行项目开发; 基于mvc的项目框架结构: Entity / dao / service / action // 1. 实体类 class User{ } //2. dao class UserDao{ .. 访问db } //3. service class UserService{ UserDao userDao = new UserDao(); } //4. action class UserAction{ UserService userService = new UserService(); .. 拿到数据或结果 } 思考: 对象创建创建能否写死? 对象创建细节 对象数量 action 多个 【维护成员变量】 service 一个 【不需要维护公共变量】 dao 一个 【不需要维护公共变量】 创建时间

短学期1

[亡魂溺海] 提交于 2020-02-01 20:02:38
在这几天的学习中,我们了解到了SSH框架: SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。 系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring

Spring4天-第一天IOC

别等时光非礼了梦想. 提交于 2020-01-31 08:15:33
1.什么是Spring Spring 分层的Java SE/EE 应用轻量级框架,以IOC ( Inversion of Controll控制反转) 和AOP(Aspect oriented Programming,面向切面编程,本质是动态代理,不修改源码的情况下进行功能增强)为内核 。 提供了 2.Spring 体系结构 3.耦合性问题: * 耦合性:程序之间的依赖性。 * 编译期依赖:编译时必须提供依赖的类,否则编译不通过。应当避免编译期依赖 * 运行期依赖:运行时必须提供依赖的类,否则不能运行 * 耦合性越强,维护成本就越高 * 开发时要求:高内聚,低耦合 4.耦合性问题现象 * 在web开发中,服务端通常分为三层:web层、service层、dao层 * web层调用service层完成功能:需要new一个Service对象 * service层调用dao层操作数据库:需要new一个dao对象 * 三层之间的耦合性比较强:存在编译期依赖 * service里写死了创建某一个dao对象:一旦dao对象换了,就需要修改service的源码 * web里写死了创建某一个service对象:一旦service对象换了,就需要修改web的源码 5.解耦思路 方法1:可以使用反射技术,代替`new`创建对象,避免编译期依赖。 Class clazz = Class.forName(

Android Room SQLite_ERROR no such table

佐手、 提交于 2020-01-31 02:26:27
问题 I'm trying my hand at using Android Room and after following this tutorial I'm getting the following error when i try to build the app: Error:(23, 27) error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: screen_items) The name is fine and should exist. After making my changes I cleaned the project and made sure it was completely uninstalled from the device. In my Activity I'm initialising the things in onCreate with this line: db = AppDatabase

Spring中JdbcTemplate在dao中的使用

☆樱花仙子☆ 提交于 2020-01-30 01:56:16
数据库表 IDEA中创建maven项目 整体构架 pom.xml < ? xml version = "1.0" encoding = "UTF-8" ? > < project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi : schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > < modelVersion > 4.0 .0 < / modelVersion > < groupId > com . uek < / groupId > < artifactId > spring04 - study03 - jdbcTemplate - dao < / artifactId > < version > 1.0 - SNAPSHOT < / version > < packaging > jar < / packaging > < dependencies > < dependency > < groupId > org . springframework < / groupId

Spring4基础 学习笔记(5) ---- Spring与Dao

让人想犯罪 __ 提交于 2020-01-28 23:12:31
Spring与DAO: Spring与JDBC模板:为了避免直接使用JDBC而带来的复杂且冗长的代码,Spring提供了一个强有力的模板类:JdbcTemplate 来简化JDBC操作。并且,数据源DataSource对象与模板JdbcTemplate对象均可通过Bean的形式定义在配置文件中,充分发挥了依赖注入的特性。 依赖jar:使用c3p0数据库连接池,Spring的JDBC.jar,Spring的事务jar,数据库驱动 一般的Service层访问Dao层: StudentServiceImpl实现-------->IStudentService接口 StudentServiceImpl 持有 Dao的引用 ,由容器注入,Impl的实现依赖于Dao(调用Dao接口的方法) Dao接口定义了访问DB的方法 定义Dao的实现类,将来注入StudentServiceImpl的类 使用JdbTemplate,Dao实现类 继承 JdbcDaoSupport,JdbcTemplate为该类的成员变量 增删改统一使用update方法: @Override public void insertStudent(Student student ) { String sql = "insert into student(name,age) values(?,?)" ; // TODO Auto

Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (mysql)

烈酒焚心 提交于 2020-01-28 22:55:51
1/自动生成的jar包:mybatis-generator-core-1.3.2.jar 2/generatorconfig.xml文件如: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <classPathEntry location="lib/mysql-connector-5.1.8.jar" /> <context id="MySqlTables" targetRuntime="MyBatis3"> <!--配置数据库链接--> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/abcProject?characterEncoding=utf8" userId="root" password="11112222"> <

Java的DAO模式

心不动则不痛 提交于 2020-01-28 12:00:59
1.基本概念 DAO(Data Access Object,数据存取对象)是为数据库或其他持久化机制提供了抽象接口的对象,在不暴露底层持久化方案实现细节的前提下提供了各种数据访问操作。解决了两个问题:访问数据、对象封装数据。 DAO模式的优势在于两次隔离:①隔离了数据访问代码和业务逻辑代码,降低了耦合性,提高了可复用性;②隔离了不同数据库实现。底层数据库变化,只需增加新的DAO接口实现类即可,原有实现不用修改,符合“开-闭”原则。降低了代码的耦合性,提高了代码扩展性和系统的可移植性。(开-闭原则:对扩展开放,对修改关闭) 2.组成部分 DAO接口:对数据库的所有操作定义成抽象方法,可以提供多种实现 DAO实现类:针对不同数据库给出DAO接口定义方法的具体实现 实体类:用于存放和传输对象数据 数据库连接和关闭工具类:避免了数据库连接和关闭代码的重复使用,方便修改 实现较为简单,不做实例演示,可参考以下内容: https://www.runoob.com/note/27029 来源: CSDN 作者: Tong_小乖乖 链接: https://blog.csdn.net/qq_36792191/article/details/104021967

java MVC 设计模式 【dao层】【Properties类】

拈花ヽ惹草 提交于 2020-01-26 21:24:49
DAO(data access object) 什么是DAO层 DAO(Date Access Object) 模型就是写一个类,把访问数据库的代码封装起来,DAO在数据库与业务逻辑(Service)之间,进行数据的访问和操作。 DAO层包括三个部分 DAO接口:定义了一系列操作数据库的方法。 DAO实现类:实现了操作数据库的方法。(对于不同数据库,有不同的实现) DAO工厂类:返回一个DAO实现类对象。 步骤 1、实体域,即操作的对象,例如我们操作的表示user表,那么就需要先写一个User类; 2、DAO模型需要先提供一个DAO接口; 3、然后再提供一个DAO接口的实现类; 4、再编写一个DAO工厂,Service通过工厂来获取DAO实现; Properties类 (Java.util.Properties) properties类的作用 java配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。xx.properties 为Java 语言常见的配置文件,如数据库的配置jdbc.properties, 系统参数配置 system.properties。 使用properties类读取properties文件 常用的方法

浅谈DAO工厂设计模式(工厂模式的好处)

僤鯓⒐⒋嵵緔 提交于 2020-01-24 04:55:24
随着软件分层设计的流行及广泛的应用,对于DAO的设计模式大家已经不再陌生了,DAO层已经在软件系统的开发中成为必不可少的一层,将后台的数据层和前台的VO进行分离。前段时间也针对于DAO的设计介绍过一个基于Hibernate的泛型DAO的设计。 csdn blog:http://blog.csdn.net/yongtree/archive/2008/03/12/2172071.aspx javaeye blog:http://yongtree.iteye.com/blog/170449 通过DAO的设计的确可以让我们的软件系统已经将数据层和表现层进行了简单的分离,让我们系统各层次的功能更加的清晰。所以我们开始洋洋得意了,DAO的引入让系统的耦合性更加的松散,表现层再也不需要关心后台数据操作的变化了。于是我们开始高枕无忧了,我们肆无忌惮的在表现层通过调用DAO来实现我们的系统了。事实真的如此吗?那我们就举个例子来看看我们的系统是否真的具有解偶的能力了。 现在我们有个员工管理系统,在该系统中,Person.java表示员工这个对象,它对应着数据库中的person表。还有用于操作Person对象的DAO接口—PersonDAO.java,还有一个PersonDAO的实现类PersonDAOImpl.java。在PersonDAOImpl.java中我们实现了操作Person对象的所有的方法