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 = ...
随机推荐
- odoo8.0下selection_add的使用
在odoo中有selection类型的字段,用于限定字段的值在某些范围之内,在view上面显示此字段时,会显示一个下拉的列表. 如果是自己新定义的字段,这个列表的内容可以自己定义,但如果是继承自某个对 ...
- iOS UITableView表视图滚动隐藏UINavigationController导航栏
UITableView 继承于UIScrollView 所以UIScrollView 的代理方法相同适用于UITableView 中 隐藏导航栏的方法为: self.navigationControl ...
- 【BIEE】MDS-01377:无法从使用 JNDI 名称 “jdbc/mds/owsm” 配置的数据源获取数据库连接
这是一次意外关机情况,BIEE环境是window server2008,但是一次意外情况,BIEE自动关机了,造成开启成功新启动BIEE产生如下错误: 错误产生后,倒腾了半天,并没发现什么问题,只是通 ...
- ECMAScript6 | 新特性(部分)
新特性概览 参考文章:http://www.cnblogs.com/Wayou/p/es6_new_features.html 这位前辈写的很好,建议深入学习 ———————————————————— ...
- 在Docker里使用(支持镜像继承的)supervisor管理进程(转)
这篇文章是受 dockboard 之托帮忙翻译的与 docker 有关的技术文章.译自 Using Supervisor with Docker to manage processes (suppor ...
- SQL&EF优化第一篇 各种情况下的性能测试之count函数篇
测试环境 mssql 08 +win7 数据 30W条 二〇一六年十月二十九日 09:04:43 结论:1>主键> *>可空列 推测未论证: 根据情况优先选择 顺便提 ...
- EMQ 学习---订阅$SYS主题,捕获客户端上下线消息
acl.config文件定义了可订阅$SYS主题的权限. {allow, {user, "dashboard"}, subscribe, ["$SYS/#"]} ...
- Centos系统安装JDK详细图文教程
1.查询系统默认JDK Centos系统默认会安装OpenJDK,一般建议是安装sun公司的JDK.我们首先检查系统是否安装有jdk并且是OpenJDK版本的,若是,则将它卸载掉并安装上sun公司的j ...
- Spark-shell 无法启动之网络问题
由于需要首次手动安装sbt,需要联网,故将虚拟机的网络适配器模式设置为"桥接模式",这样就可以和互联网相连接. 但是后面执行"spark-shell --master ...
- 【LeetCode】Sort Colors 解题报告
[题目] Given an array with n objects colored red, white or blue, sort them so that objects of the same ...