dao

spring框架总结(04)----介绍的是Spring中的JDBC模板

别来无恙 提交于 2020-03-05 08:03:49
1.1 Jdbc模板概述 它是spring框架中提供的一个对象, 是对原始 Jdbc API 对象的简单封装 。spring框架为我们提供了很多的操作模板类,入下图所示: 我们今天的主角在 spring-jdbc-4.24.RELEASE.jar 中,我们在导包的时候,除了要导入这个jar包外,还需要导入一个 spring-tx-4.2.4.RELEASE.jar (它是和事务相关的)。 1、Spring中的jdbc模板入门 1.1.1. 创建工程、引入jar包 1.1.2. 创建测试表 CREATE TABLE account( id BIGINT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(40), money DOUBLE )CHARACTER SET utf8 COLLATE utf8_general_ci; 1.1.3. 创建测试类 注意:需要导入c3p0的jar包 public class TestJdbcTemplate { @Test public void test1(){ //创建 jdbc 模板对象 JdbcTemplate jdbcTemplate = new JdbcTemplate(); //创建c3p0数据源 ComboPooledDataSource dataSource = new

八、为DAO添加分页扩展

左心房为你撑大大i 提交于 2020-03-04 10:19:01
为什么要对DAO进行扩展? 在之前的篇幅中,我有介绍到,由jOOQ生成的DAO带有一些基础的CURD方法,另外还会针对每个字段生成一些查询方法。 但是这些方法比较单一,都是以单一字段为基础,进行查询操作,不足以面对复杂的业务场景。 例如,我们业务中常用到的分页查询、多条件查询等,都没有在被封装在DAO中,只能用 DSLContext 的API来完成。 其实这些方法比较通用,我们可以通过一些的封装,让我们能够以更简单的方式进行这些操作 如何进行 通过jOOQ生成的DAO代码可以发现,所有的DAO都继承了 DAOImpl 抽象类,那么我们只需要自己创建一个类去继承 DAOImpl 然后让所有的DAO类继承我们自己创建的类,那么就可以在自己创建的类内,来扩展一些公共方法,给每个DAO去使用 假设我们创建的类名称叫 AbstractExtendDAOImpl ,以 S1UserDao 为例,继承关系如下: S1UserDao [extends] -> AbstractExtendDAOImpl [extends] -> DAOImpl [implement] -> DAO 但是jOOQ生成的代码每次都是根据配置全量生成的,他会删除原有的目标路径然后重新生成,所以在DAO生成后直接修改生成后的代码是不可行的。那么我们只能在生成阶段,去修改最终的生成目标代码 jOOQ 生成器的配置内可以通过

JavaWeb——MVC案例

允我心安 提交于 2020-03-03 08:09:18
三层优化: MVC与三层结构的比较: 1.三层架构 与MVC设计模式的目标一致:都是为了解耦合、提高代码复用: 区别,二者对项目理解的角度不同。 2.三层组成: 表示层(USL, User Show Layer ; 视图层) a.前台:对应于MVC中的View,用于和用户交互、界面的显示 jsp js html css jquery 等web前端技术代码位置: WebContent b.后台:对用于MVC中Controller,用于控制跳转、调用业务逻辑层 Servlet (SpringMVC Struts2) ,位于 xxx. servlet包 中 业务逻辑层(BLL,Business Logic Layer ; Service层) a.接收表示层的请求调用 b.组装数据访问层,逻辑性的操作(增删改查, 删:查+删), 一般位于 XXX. service包 ( 也可以成为: XXX. manager ,XX. bll) 数据访问层(DAL, Data Access Layer; Dao层) a.直接访问数据库的操作,原子性的操作(增删改查) 一般位于 XXX. dao包 3.三层间的关系: 上层将请求传递给下层;下层处理后 返回给上层。 上层依赖于下层,依赖:代码的理解——就是持有成员变量,有A的前提必须有B。 有数据库才有可能有Dao层,所以Dao层依赖于数据库。 1.加入接口

Spring使用JDBC访问MySQL数据库

♀尐吖头ヾ 提交于 2020-03-03 01:07:19
在Java应用程序开发中,使用JDBC访问MySQL数据库是Java开发者常用的技术。在Spring框架中,Spring对JDBC又进行了封装,简化了程序访问数据库的复杂度。本课主要讨论在Spring框架中如何使用封装的JDBC访问MySQL数据库。通过本课的学习,可以解决如下问题。 ● 在Spring框架下,如何让程序连接数据库? ● 如何利用DAO技术从数据源读取和写入数据? 企业级应用开发都会涉及到对数据库的访问,在Java编程环境中,访问数据库是非常繁琐的事情,需要编写启动数据库连接、准备和执行SQL语句、处理事务和异常、关闭连接等大量数据库操作代码。 使用Spring框架可以简化Java程序对数据库的访问,Spring提供了一套完整的数据库访问框架,用于简化各种数据库访问技术的使用。Spring框架支持JDBC、Hibernate、Java Perssitence等数据库访问技术,本文主要讨论JDBC数据库访问技术。 1、 配置数据源 要让Spring能够访问数据库,就要把数据库的位置,以及访问数据库的账号和密码告诉Spring。这个过程称为配置数据源。Spring提供了多种方式配置数据源,下面主要讨论基于JDBC驱动方式配置数据源。 Spring提供的JDBC驱动提供了三类数据源的配置方式,开发者可以根据程序需要选择不同的配置方式,配置方式及其配置说明如下表所示。 表1

Maven

被刻印的时光 ゝ 提交于 2020-03-02 15:37:39
Maven Maven 项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的 项目管理工具 软件。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由 CVS 来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。 maven的优点 1.依赖的管理 Maven是如何找jar包的? 说白了,其实就是对jar 包的管理并给出坐标的过程。 2.一键构建 什么是构建? 指的是项目从编译-----测试-----运行----打包-------安装整个过程都交给maven进行管理,这个过程称为构建。 Maven命令 1.clean clean是maven工程的清理命令,执行

MyBatis 实践 -Mapper与DAO

╄→гoц情女王★ 提交于 2020-03-02 05:14:12
MyBatis 实践 标签: Java与存储 MyBatis简介 MyBatis 前身是 iBatis ,是一个基于Java的 数据持久层/对象关系映射(ORM)框架 . MyBatis是对JDBC的封装,使开发人员只需关注SQL本身,而不需花费过多的精力去处理如 注册驱动 、 设置参数 、 创建 Connection / Statement 、 解析结果集 等JDBC过程性代码.MyBatis基于XML/注解的方式配置 Statement ,执行SQL,并将执行结果映射成Java对象, 大大降低了数据库开发的难度. MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs

判断用户名是否存在

不想你离开。 提交于 2020-03-02 04:02:56
dao接口: //检测用户名是否重复 public User checkUserName(String userName); dao实现类: //检测用户名是否重复 @Override public User checkUserName(String userName) { Connection conn = DBUtil.getConnection(); PreparedStatement ps = null; ResultSet rs = null; User user=null; String sql="SELECT USER_NAME FROM T_USER WHERE USER_NAME = ? "; try { ps=conn.prepareStatement(sql); ps.setString(1, userName); rs=ps.executeQuery(); while(rs.next()) { user=new User(); user.setUserName(rs.getString("USER_NAME")); } } catch (SQLException e) { e.printStackTrace(); }finally { DBUtil.closeConn(conn, ps, rs); } return user; } 建一个类来 测试 :

maven环境搭建及结构框架

本小妞迷上赌 提交于 2020-03-01 20:12:50
工具介绍: idea mySQL 5.5.8 最好不超过5 JDK1.8 Tomcat8.0 Maven 3.6.0 Editplus 步骤: 1、先准备数据库 创建数据库—— db_gm,创建表 —— tb_user 2、建项目maven archetypeCatalog=internal JAR包路径C:\Users\yangc.m2\repository 3、导包 pom.xml 4、创建项目的目录结构——java、resource、webapp 5、根据mvc的非常开发思想创建包结构名 -MVC结构 MVC M:model V:View C:Controller 6、model/bean/pojo/entity ——存放实体类 dao/mapper ——存放接口,与数据库直接交互 service ——业务逻辑层,大致与dao层一致 controller ——控制层 来源: CSDN 作者: y17757773039 链接: https://blog.csdn.net/y17757773039/article/details/104592609

注解+反射+JDBC,实现一个简易的泛型DAO接口

↘锁芯ラ 提交于 2020-03-01 13:13:06
一、实现思路 1、定义3个Annotation(注解):Entity、Id、Column,Entity作用于Type级别,用于标识JavaBean与数据库表名的映射关系。Id作用于Field级别,用于标识JavaBean中ID属性与表中ID字段的映射关系,Column作用于Field级别,用于标识JavaBean中除ID属性外的其它属性与表中字段的映射关系。 2、在Dao实现类中,通过反射API获得JavaBean中注解和属性的信息,如:表名、字段。JavaBean属性的名称、数据类型等信息。然后将这些信息拼接成一条SQL语句,通过JDBC的方式与数据库交互。 二、示例代码 1、定义一个Dao公共类,提供获得数据库连接与释放数据库资源的接口 package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 提供获取数据库连接、释放资源的接口 */ public class JdbcDaoHelper { /** * 数据库用户名 */ private static final String USER =

shiro-spring-mtbatis整合

独自空忆成欢 提交于 2020-02-29 10:46:09
###1、添加maven依赖 ###2、配置web.xml配置 ###3、mybatis-config.xml配置 ###4、jdbc.properties配置 ###5、spring-mybatis.xml配置 ###6、shiro-spring.xml配置 ###7、日志文件配置 ###8、缓存ehcache.xml配置 ###9、spring-bean.xml配置 ###10、spring-mvc.xml配置 ###11、数据库储存过程文件 ###12、model编写 ###13、dao接口 ###14、dao接口的实现配置文件 ###15、模型的service接口 ###16、service接口实现类编写 ###17、通用工具类 ###18、controller层 ###19、测试文件 ###20、realm ###21、异常类 来源: oschina 链接: https://my.oschina.net/u/2365309/blog/718213