dao

Adding and updating entities with Entity Framework

本小妞迷上赌 提交于 2019-12-03 00:04:17
In my last project I have used Entity Framework 5 Code First. I completed my project but had a lot of pain during the development process. I tried to explain my pain below: I had several data classes in my data access logic layer like Product, ProductCategory, Order, Company, Manufacturer etc... Each class has some references to some other classes. For example, a Product instance has a ProductCategory property. Inside Add and Update methods of my Data Access Object classes I set the states of each property (other than the primitive types) to Unchanged or Modified in the context. Below is some

JDBC初学,DAO模式

匿名 (未验证) 提交于 2019-12-02 23:59:01
一、用eclipse连接mysql数据库: 要先添加一个文件: https://www.cnblogs.com/caiwenjing/p/8079227.html 二、开始写连接数据库的代码: 因为连接数据库的操作一般是公用的,所以写在叫做util的包里 像实体类一般写在叫做entity包里面 测试类(JUnit里讲解过怎么使用)写在叫做test的包里面 package com.util; import java.sql.*; public class ConnectionUtil { /** * 第一步:加载驱动 * 第二步:链接数据库 * 第三步:一定要关闭流 * 第四步:测试是否连接成功 */ private static String DRIVER = "com.mysql.cj.jdbc.Driver"; // 数据库驱动 private static String URL = "jdbc:mysql://localhost:3306/xxxy?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT"; // 访问数据库路径 //xxxy 是我连接的数据库名称 private static String NAME = "root"; // 数据库用户名 private static

Hibernate入门这一篇就够了

匿名 (未验证) 提交于 2019-12-02 23:57:01
Hibernate入门这一篇就够了 本博文主要讲解 介绍Hibernate框架,ORM的概念和Hibernate入门 ,相信你们看了就会使用Hibernate了! Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping ,在Java对象与关系数据库之间 建立某种映射,以实现直接存取Java对象 ! 既然Hibernate是关于Java对象和关系数据库之间的联系的话,也就是 我们MVC中的数据持久层->在编写程序中的DAO层... 首先,我们来回顾一下我们在DAO层写程序的历程吧: 在DAO层操作XML,将数据封装到XML文件上,读写XML文件数据实现CRUD 在DAO层使用原生JDBC连接数据库,实现CRUD 嫌弃JDBC的Connection\Statement\ResultSet等对象太繁琐,使用对原生JDBC的封装组件-->DbUtils组件 我们来看看使用DbUtils之后,程序的代码是怎么样的: public class CategoryDAOImpl implements zhongfucheng.dao.CategoryDao{ @Override publicvoidaddCategory(Category category) { QueryRunner queryRunner = new QueryRunner

spring进一步学习---ioc

匿名 (未验证) 提交于 2019-12-02 23:49:02
1.IOC和ID的区别:    控制反转 (Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。 其中 最常见的方 式叫做依赖注入(Dependency Injection,简称 DI),还有一种方式叫“依赖查找”(Dependency Lookup)--->百度:JNDI 解释: IOC是程序所需要达到的目标   ID是实现IOC的技术 手段    有点类似于orm->mabatis 2.依赖注入 (1)什么是依赖   A类中有个属性为B类,则称A依赖B 3.为什么要使用springioc   在日常程序开发过程当中,我们推荐面向抽象编程,面向抽象编程会产生类的依赖,当然如果你够强大可以自己写一个管理的容器,但是既然 spring以及实现了,并且 spring如此优秀,我们仅仅需要学习 spring框架便可。 当我们有了一个管理对象的容器之后,类的产生过程也交给了容器,至于我们自己的app则可以不需要去关系这些对象的产生了。 场景: 1.我有N个类维护着List接口的实现这么一个属性,在传统情况下都是List list = new ArrayList();倘若现在业务需求发生了变化,需要变为List list = new LinkedList();name就需要修改N个类, 但是在有spring的情况下

报org.hibernate.HibernateException: No Session found for current thread异常的解决办法

匿名 (未验证) 提交于 2019-12-02 23:49:02
报错是在当前线程没有找到Session,导致无法使用session来对数据库进行操作,经测试可能有以下原因引起: 1.配置文件中,关于事务的配置未将该类给包含进去(即该DAO所属的包不在事务里) 知道了原因那么下面就好弄了,两种解决方案: 1.在配置文件中将该类所属的包加入到事务里 如上图,expression里的所代表的就是事务所包含的package,你可以新增多个包扫描路径,通过or连接 2.直接在报错的DAO方法上加上@Transactional注解,这个看似比较简单,但由于所属的包都没有添加事务,意味着这个包下所有DAO的方法都要加上这个注解,那就很繁琐了

springdataJpa

匿名 (未验证) 提交于 2019-12-02 23:45:01
dao层继承JpaRepository<T,主键类型>,分页查询和复杂查询还需继承JpaSpecifationExecutor<T> 注意:不需要加@repository 1 直接在server层封装,可以用jpa集成的方法crud(findAll,findById.get()...) 3 直接dao接口层上面用注解@Query(“”)这种是JPQL语句(面向对象查询,不能出现表名,都是对象名)或者用sql语句@Query(“”,nativeQuery=true)

DAO框架-从“1”开始(一)

匿名 (未验证) 提交于 2019-12-02 23:43:01
-------前篇: DAO框架-从“1”开始(一) 前言:前篇主要介绍了写此框架的动机,把主要功能点大致介绍了一下。此篇文章主要介绍开发前最后的一些准备。主要包括一些基础知识点,和模块的拆分。 话说磨刀不误砍材工,知其然,还要只其所以然。因为很久没有学习相关的知识了,为了避免一些明显错误,所以先把相关基础知识了解一下。 (因个人水平有限,如有纰漏,还请指出) 基础知识点 一、Statement和PrepareStatement 缓存编译后的sql的key,保障不同ps执行sql不会重复编译 ) /*--> */ /*--> */ /*--> */ /*--> */ /*--> */ 二、mysql如果要预编译,需要开启预编译 三、数据库执行sql的流程 四、如何快速反序列化 五、连接池功能 模块拆分 一、 连接 二、连接池 三、基础查询封装 四、ORM映射 完整详细信息如下: 下篇内容剧透:真的开始写代码了

PO、VO、BO、DTO、POJO、DAO、DO之间的关系

匿名 (未验证) 提交于 2019-12-02 23:36:01
DO: domain object持久对象 就是从现实世界中抽象出来的有形或无形的业务实体。 PO: persistant object持久对象 最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。 BO: business object业务对象 主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 比如一个简历,有教育经历、工作经历、社会关系等等。 我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。 建立一个对应简历的BO对象处理简历,每个BO包含这些PO。 这样处理业务逻辑时,我们就可以针对BO去处理。 VO : value object值对象 ViewObject表现层对象 主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。 DTO : Data Transfer Object数据传输对象 主要用于远程调用等需要大量传输对象的地方。 比如我们一张表有100个字段,那么对应的PO就有100个属性。 但是我们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构

Dao层和Service层的区别

匿名 (未验证) 提交于 2019-12-02 23:36:01
举个栗子: 传统访问数据库的方法非常面向过程,分为以下几步 import java . sql . Statement ; import java . util . Properties ; import java . io . FileInputStream ; import java . io . FileNotFoundException ; import java . io . IOException ; import java . sql . Connection ; import java . sql . DriverManager ; import java . sql . ResultSet ; import java . sql . SQLException ; public class DBAccess { public static void main ( String [] args ) throws SQLException , FileNotFoundException , IOException { DBAccess access = new DBAccess (); access . test (); } private void test () throws SQLException , FileNotFoundException ,