mybatis总结(二)
实现简单的crud,上一节已经进行最简单的查询
这次在oracle数据库中操作,就在oracle实例中操作,分别是Dept表和Emp表,所以配置文件需要改动。
1.实体类
Dept类
- public class Dept {
- private int deptno;//部门编号
- private String dname;//部门名称
- private String loc;//所在地区
- private List<Emp> emps;//一对多关系
- public List<Emp> getEmps() {
- return emps;
- }
- public void setEmps(List<Emp> emps) {
- this.emps = emps;
- }
- public int getDeptno() {
- return deptno;
- }
- public void setDeptno(int deptno) {
- this.deptno = deptno;
- }
- public String getDname() {
- return dname;
- }
- public void setDname(String dname) {
- this.dname = dname;
- }
- public String getLoc() {
- return loc;
- }
- public void setLoc(String loc) {
- this.loc = loc;
- }
- }
Emp类(只取几个字段,并没有把所有的列转换过来)
- public class Emp {
- private int empno;//员工编号
- private String ename;//员工姓名
- private Dept dept;//部门对象
- private String job;//员工工作
- public String getJob() {
- return job;
- }
- public void setJob(String job) {
- this.job = job;
- }
- public int getEmpno() {
- return empno;
- }
- public void setEmpno(int empno) {
- this.empno = empno;
- }
- public String getEname() {
- return ename;
- }
- public void setEname(String ename) {
- this.ename = ename;
- }
- public Dept getDept() {
- return dept;
- }
- public void setDept(Dept dept) {
- this.dept = dept;
- }
- }
2.数据库连接文件 db.properties
- driver=oracle.jdbc.driver.OracleDriver//驱动名
- url=jdbc:oracle:thin:@localhost:1521:MLDN//地址名
- username=scott//用户名
- password=tiger//密码
3.编写config.xml文件
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
- <!-- properties属性配置文件的引入 -->
- <properties resource="db.properties"></properties>
- <!-- setting设置,调整mybaits运行行为 -->
- <settings>
- <!-- 匹配下划线到驼峰式命名法 -->
- <setting name="mapUnderscoreToCamelCase" value="true"/>
- <setting name="safeRowBoundsEnabled" value="false"/>
- <setting name="cacheEnabled" value="true"/>
- <setting name="lazyLoadingEnabled" value="true"/>
- <setting name="multipleResultSetsEnabled" value="true"/>
- <setting name="useColumnLabel" value="true"/>
- <setting name="useGeneratedKeys" value="false"/>
- <setting name="autoMappingBehavior" value="PARTIAL"/>
- <setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
- <setting name="defaultExecutorType" value="SIMPLE"/>
- <setting name="defaultStatementTimeout" value="25"/>
- <setting name="defaultFetchSize" value="100"/>
- <setting name="localCacheScope" value="SESSION"/>
- <setting name="jdbcTypeForNull" value="OTHER"/>
- <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
- </settings>
- <!-- 类起别名 -->
- <typeAliases>
- <!-- <typeAlias type="com.qyxy.entity.Dept" alias="Dept"/> -->
- <package name="com.qyxy.entity"/>
- </typeAliases>
- <!-- 设置要使用的数据库环境 -->
- <environments default="development">//选择mysql配置
- <environment id="development">
- <transactionManager type="JDBC" />
- <dataSource type="POOLED">
- <property name="driver" value="${driver}" />
- <property name="url" value="${url}" />
- <property name="username" value="${username}" />
- <property name="password" value="${password}" />
- </dataSource>
- </environment>
- <environment id="mysql">
- <transactionManager type="JDBC" />
- <dataSource type="POOLED">
- <property name="driver" value="${jdbc.driverClassName}" />
- <property name="url" value="${jdbc.url}" />
- <property name="username" value="${jdbc.username}" />
- <property name="password" value="${jdbc.password}" />
- </dataSource>
- </environment>
- </environments>
- <!-- 定义不同的数据库厂商标识 -->
- <databaseIdProvider type="DB_VENDOR">
- <property name="SQL Server" value="sqlserver"/>
- <property name="DB2" value="db2"/>
- <property name="Oracle" value="oracle" />
- <property name="MySql" value="mysql" />
- </databaseIdProvider>
- <!-- 映射的sql文件 -->
- <mappers>
- <package name="com.qyxy.mapper"/>//所在包
- </mappers>
- </configuration>
4.编写类的mapper.xml文件
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.qyxy.mapper.DeptMapper">
- <select id="selectDept" resultType="Dept" databaseId="oracle">
- select *
- from dept where deptno = #{deptno}
- </select>
- <select id="findAll" resultType="Dept">
- select * from dept
- </select>
- <!-- 查询指定信息 -->
- <select id="find" resultType="Dept">
- select * from dept where
- dname=#{dname} and loc=#{loc}
- </select>
- <!-- 新增指定对象 -->
- <insert id="saveDept">
- insert into dept(deptno,dname,loc)
- values(#{deptno},#{dname},#{loc})
- </insert>
- <!-- 删除指定对象 -->
- <delete id="deleteDept">
- delete from dept where deptno=#{deptno}
- </delete>
- <!-- 修改指定对象 -->
- <update id="updateDept">
- update dept
- set dname=#{dname},loc=#{loc}
- where
- deptno=#{deptno}
- </update>
- <!-- 新增获取自动生成的主键id oracle中有效 -->
- <insert id="insertDept">
- <selectKey keyProperty="deptno" resultType="int" keyColumn="deptno"
- order="BEFORE">
- select SEQ_DEPT_DEPTNO.nextval from dual
- </selectKey>
- insert into dept(deptno,dname,loc) values (#{deptno},#{dname},#{loc})
- </insert>
------------------------------------------------------------------------------------------------补充
<!-- 新增多个对象 mysql中操作有效 -->
<insert id="saveDepts" useGeneratedKeys="true" keyProperty="deptno">
insert into dept(dname,loc) values
<foreach item="item" collection="list" separator=",">
(#{item.dname},#{item.loc})
</foreach>
</insert>- </mapper>
5.写mapper接口和测试方法,这里就不一一写了,大家自己测试吧
mybatis总结(二)的更多相关文章
- MyBatis系列二 之 数据库列名于程序实体类中字段名称不一致
MyBatis系列二 之 数据库列名于程序实体类中字段名称不一致 情景:当数据库中的列名与我们程序实体类中的字段名称不一致 使用ResultMap节点配置信息 在映射文件中 ...
- MyBatis笔记二:配置
MyBatis笔记二:配置 1.全局配置 1.properites 这个配置主要是引入我们的 properites 配置文件的: <properties resource="db.pr ...
- (原创)mybatis学习二,spring和mybatis的融合
mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...
- 33、mybatis(二)
第十六章回顾SQL99中的连接查询 1)内连接 2)外连接 3)自连接 第十七章回顾hibernate多表开发 1)一对一 2)一对多 3)多对多 第十八章 mybatis一对一映射[学生与身份证] ...
- mybatis(二)接口编程 、动态sql 、批量删除 、动态更新、连表查询
原理等不在赘述,这里主要通过代码展现. 在mybatis(一)基础上,新建一个dao包,并在里面编写接口,然后再在xml文件中引入接口路径,其他不变,在运用阶段将比原始方法更节约时间,因为不用再去手动 ...
- MyBatis之二:简单增删改查
这一篇在上一篇的基础上简单讲解如何进行增删改查操作. 一.在mybatis的配置文件conf.xml中注册xml与注解映射 <!-- 注册映射文件 --> <mappers> ...
- Java框架之Mybatis(二)
本文主要介绍 Mybatis(一)之后剩下的内容: 1 mybatis 中 log4j的配置 2 dao层的开发(使用mapper代理的方式) 3 mybatis的配置详解 4 输入输出映射对应的类型 ...
- springboot集成mybatis(二)
上篇文章<springboot集成mybatis(一)>介绍了SpringBoot集成MyBatis注解版.本文还是使用上篇中的案例,咱们换个姿势来一遍^_^ 二.MyBatis配置版(X ...
- spring boot整合mybatis方式二
方式二: pom文件导入maven依赖: <dependency> <groupId>org.springframework.boot</groupId> < ...
- Java高级框架——Mybatis(二)
十.三种查询方式 1. selectList()返回值为List<resultType属性控制> 1.1 适用于查询结果都需要遍历的需求 List<Flower> list = ...
随机推荐
- malloc、calloc、realloc的区别(转)
(1)C语言跟内存分配方式 <1>从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量.static变量.<2> ...
- 04-spring-控制反转
使用myeclipse开发spring一个Demo. 第一步:新建一个web project. 第二步:安装spring开发的支持包. 安装后多了这几个东西 3,定义一个操作接口: package c ...
- vs2017安装过程问题及解决方法
1. 问题:C++ 无法打开 源 文件 "errno.h"等文件 解决方法:https://jingyan.baidu.com/article/8ebacdf0167b2249f6 ...
- linux下各种形式的shell加法操作总结
linux 下shell加法操作总结: #!/bin/bash n=1;echo -n "$n " let "n = $n + 1" echo -n & ...
- Memcached 教程
http://www.runoob.com/memcached/memcached-tutorial.html
- delete与delete [] 真正差别
我们通常从教科书上看到这种说明: delete 释放new分配的单个对象指针指向的内存 delete[] 释放new分配的对象数组指针指向的内存 那么,依照教科书的理解,我们看下以下的代码: int ...
- TypeScript 入门指南
你是否听过 TypeScript? TypeScript 是微软开发的 JavaScript 的超集,TypeScript兼容JavaScript,可以载入JavaScript代码然后运行.TypeS ...
- 多线程-AbstractQueuedSynchronizer(AQS)
概述 从使用者的角度,AQS的功能可分为两类:独占功能和共享功能.它的子类中,要么实现并使用了它独占功能的API,要么使用了共享锁的功能,而不会同时使用两套API,即使是它的子类ReentrantRe ...
- DDR 复位
将FPGA代码和实际的数字电路对应起来. always @ (negedge clk_ref_200) begin if(ddr3_init_done) 'b10) 'b10 ...
- 二次开发第N天。。。。。。。。自动分页问题
phpcms\modules\content\fields\pages\form.inc.php 注意修改时,如果是gbk版本可以直接用记事本修改保存!如果是utf8 要用工具修改,或者保存的时候要记 ...