MyBatis的配置和用法

1、搭建MyBatis框架步骤:
1)导包:mybatis-3.2.5.jar(核心包);ojdbc14_11g.jar(连接数据库);
--------------------------------------------------------------------------------------------------------------------------------------------------
2)新建SqlMapConfig.xml配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-config.dtd">
<configuration>
<typeAliases>//使用别名可以在maper.xml中不必要写全路径
<typeAlias type="com.soft.entity.Dept" alias="Dept"/>
</typeAliases>
<!-- 配置连接 -->
<environments default="environment">
<environment id="environment">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.OracleDriver" /><!-- 注意驱动和url的准确性 -->
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="test" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/soft/entity/Dept.xml"/><!-- Dept.xml所在的路径,注意不能使用. -->
</mappers>
</configuration>
--------------------------------------------------------------------------------------------------------------------------------------------------
PS:其他驱动:
mssql: "com.microsoft.jdbc.sqlserver.SQLServerDriver"
oracle jdbc: "oracle.jdbc.driver.OracleDriver"
sqlite: "org.sqlite.JDBC"
mySql: "com.mysql.jdbc.Driver"
PS:其他驱动URL:
sqlite3: "jdbc:sqlite:test.db"
oracle: "jdbc:oracle:thin:@server:1521:sid"
sqlserver: "jdbc:microsoft:sqlserver://server:1433;DatabaseName=barcode"
mySql: "jdbc:mysql://localhost:3306/test"
--------------------------------------------------------------------------------------------------------------------------------------------------
3)建立工具类获得连接:
a.获得配置文件名及其路径:private static final String CONFIG_PATH = "SqlMapConfig.xml";
b.将配置文件读取到IO流中: Reader reader = Resources.getResourcesAsReader(CONFIG_PATH);
c.利用SqlSessionFactoryBuilder解析配置文件,并新建sessionFaction工厂:
SqlSessionFactory sessionFaction = new SqlSessionFactoryBuilder().build(reader);
d.获取单例:(此为最佳的单例模式)
public static synchronized MyBatisUtil getInstance(){
if(null == instance){
synchronized (MyBatisUtil.class) {
instance = new MyBatisUtil();
}
}
return instance;
}
e.获取连接:
public synchronized SqlSession getSqlSession(){
session = sessionFaction.openSession();
return session;
}
--------------------------------------------------------------------------------------------------------------------------------------------------
4)配置实例xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"><!-- 3是MyBatis的版本 -->
<mapper namespace="01">
//如果数据库支持自动生成主键字段insert中可设置useGeneratedKeys="true",然后把keyProperty设置到目标字段上,如:keyProperty="user_id"
<insert id="addDept" parameterType="Dept" >
insert into G_Dept(deptno,dname,loc)values(#{deptno},#{dname},#{loc})
</insert>
<delete id="delDeptById" parameterType="java.lang.Integer">
delete from G_Dept where deptno= #{deptno}
</delete>
<update id="updateDept" parameterType="Dept">
update G_Dept set dname=#{dname},loc = #{loc} where deptno=#{deptno}
</update>
<select id="findAll" resultType="Dept">
select * from G_Dept
</select>
<select id="findAllMap" resultType="java.util.HashMap" parameterType="Dept">
select * from G_Dept
</select>
</mapper>

PS:parameterType——参数类型,即要传入的参数的类型;
resultType——返回类型
--------------------------------------------------------------------------------------------------------------------------------------------------
5)取得并使用:
Dept dept = new Dept();//一个Bean类
SqlSession session = MyBatisUtil.getInstance().getSqlSession();
session.delete("delDeptById", dept);
==================================================================================================================================================
2、oracl中自动增长列:
<insert id="addDept" parameterType="Dept" >
<selectKey keyProperty="d_no" order="BEFORE" resultType="java.lang.Integer">
select dept_seq.nextval from dual
</selectKey>
insert into G_Dept(d_no,d_name,u_no,d_level,d_addr)values(#{d_no},#{d_name},#{u_no},#{d_level},#{d_addr})
</insert>
==================================================================================================================================================
3、关联映射:
<!-- 多对一使用嵌套结果查询(推荐此使用此方法),
查询selectById2时,会关联到empById2进行查询,查询出来的结果匹配到Emp中的属性,Emp中有Dept属性,再次关联对应到Dept中的属性 -->
<select id="selectById2" parameterType="int" resultMap="empById2">
select a.*, b.* from g_emp a join g_dept b on (a.d_no = b.d_no) where a.e_no = #{id}
</select>
<resultMap type="Emp" id="empById2"><!-- type="Emp"查询的表所对应的bean类 -->
<id property="e_no" column="E_NO"/>
<result property="e_name" column="E_NAME"/>
<result property="d_no" column="D_NO"/>
<association property="dept" column="D_NO" resultMap="selectDept"></association><!-- 此处如果结果较多,建议再写一个resultMap,方便后续使用 -->
</resultMap>
<resultMap type="Dept" id="selectDept">
<id property="d_no" column="D_NO"/>
<result property="d_name" column="D_NAME"/>
<result property="u_no" column="U_NO"/>
<result property="d_level" column="D_LEVEL"/>
<result property="d_addr" column="D_ADDR"/>
</resultMap>
==================================================================================================================================================
4、集合映射:
<!-- 一对多使用嵌套结果查询(建议使用此方法) -->
<select id="selectByIdDept2" parameterType="int" resultMap="select4">
select a.*, b.* from g_dept a join g_emp b on(a.d_no = b.d_no) where a.d_no = #{id}
</select>
<resultMap type="Dept" id="select4">
<id property="d_no" column="D_NO"/>
<result property="d_name" column="D_NAME"/>
<result property="u_no" column="U_NO"/>
<result property="d_level" column="D_LEVEL"/>
<result property="d_addr" column="D_ADDR"/>
<collection property="emp" ofType="Emp" resultMap="selectEmp2"></collection><!-- ofType="Emp"关联的类型 -->
</resultMap>
<resultMap type="Emp" id="selectEmp2">
<id property="e_no" column="E_NO"/>
<result property="e_name" column="E_NAME"/>
<result property="d_no" column="D_NO"/>
</resultMap>
==================================================================================================================================================
5、返回Map类型:
<select resultType="java.util.Map"/> //Map中返回字段与value对应
List<Map> map = .......
map.get(i).get("大写字段名")
==================================================================================================================================================

时间: 2024-10-13 22:24:15

MyBatis的配置和用法的相关文章

MyBatis的配置和使用原理

MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old JavaObjects,普通的 Java对象)映射成数据库中的记录. MyBatis让程序将主要精力放在sql上,通过MyBatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句.

Mybatis-Generator插件的使用与Spring集成Mybatis的配置

Mybatis-Generator插件 Mybatis-Generator是一个用于自动生成dao层接口.pojo以及mapper xml的一个Mybatis插件,该插件有三种用法:命令行运行.Eclipse插件.maven插件.个人觉得maven插件最方便,可以在eclipse/intellij idea等ide上通用,本文也是介绍在maven中配置并使用这个插件. 现在我mysql中有一个school数据库,该数据库有student.cls两张表格,表结构如下: student表: cls表

笔记:MyBatis XML配置详解

MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息.文档的顶层结构如下: configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件 environments 环境 environment 环境变量 transactionManager 事务管理器 dataSource

Mybatis基本配置(一)

1. Mybatis介绍 MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. 2. 准备jar包 1)mybatis-3.3.0.jar, Mybatis包. 2)sqljdbc4.jar ,因为我们要用到SQLS

【初学菜鸟作--KVM虚拟机配置及用法】

KVM虚拟机配置及用法 1.主要存放位置: 安装kvm虚拟机默认存放位置  --/var/lib/libvirt/images kvm虚拟机配置文件存放位置  --/etc/libvirt/qemu/ 2.常用管理命令: 管理命令 virsh list --查看已打开虚拟机列表 virsh list --all --查看所有虚拟机列表 virsh version --查看版本号 virsh start yeyue1     --启动虚拟机 virsh create /etc/libvirt/qe

hao947 : Mybatis resultMap配置插入和主键自增返回 : 好947

映射配置文件  好947  <!-- type:映射实体类的数据类型 id:resultMap的唯一标识 -->  <resultMap type="person" id="BaseResultMap">   <!-- column:库表的字段名 property:实体类里的属性名 -->   <id column="person_id" property="personId" /&g

MyBatis MapperScannerConfigurer配置――MyBatis学习笔记之八

MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八 2012-09-02 20:01:42 标签:Spring MyBatis MapperScannerConfigurer bean默认命名 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://legend2011.blog.51cto.com/3018495/980150 在上一篇博文的示例中,我们在beans.xml中配置了stu

spring和mybatis整合配置

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p&

MyBatis 实践 --配置

MyBatis 实践 Configuration mybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下: properties : 属性(文件)加载/配置 settings : 全局配置参数 typeAliases : 定义类型别名 typeHandlers : 类型处理器 objectFactory : 对象工厂 plugins : 插件 environments : 环境集合属性对象 environment transactio