MyBatis案例&增删改查

一、MyBatis入门案例:

  ①:引入jar包

  ②:创建实体类 Dept,并进行封装

  ③ 在Src下创建大配置mybatis-config.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6 <typeAliases>
 7 <typeAlias type="cn.happy.entity.Dept" alias="Dept"/>
 8 </typeAliases>
 9 
10 <environments default="development">
11         <environment id="development">
12             <transactionManager type="JDBC" />
13             <dataSource type="POOLED">
14                 <property name="driver" value="oracle.jdbc.OracleDriver" />
15                 <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
16                 <property name="username" value="wj" />
17                 <property name="password" value="9090" />
18             </dataSource>
19         </environment>
20     </environments>
21     <!--映射文件:描述某个实体和数据库表的对应关系 -->
22     <mappers>
23         <mapper resource="cn/happy/entity/Dept.xml" />
24         
25         <mapper resource="cn/happy/entity/Mapper.xml" />
26     </mappers> 
28  </configuration>

注:其中的几个常用元素作用如下:

environments元素:用于配置多个数据环境,可映射多个数据库信息

在MyBatis中有两种事务管理器类型(即type="JDBC/MANAGED")

JDBC:直接使用了JDBC控制事务

MANAGED:MyBatis自己不负责控制事务,它会让容器来管理事务的整个生命周期

数据源类型有三种:UNPOOLED、POOLED、JNDI

  ①UNPOOLED:这个数据源的实现是每次被请求时简单打开和关闭连接。

  ②POOLED:采用连接池以避免创建新的连接实例时必要的初始连接和认证时间

  ③JNDI:为了使用如Spring或应用服务器这类的容器

  mappers元素:包含所有mapper的列表。告诉MyBatis到哪里去找SQL语句。主要是定义Sql映射文件

  ④:创建小配置 Dept.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 
 6 <mapper namespace="cn.happy.entity.Dept">
 7 
 8 <!-- 查询 -->
 9 <select id="selectDept" resultType="Dept">
10 select * from Dept
11 </select>

注:id:唯一标识:通过此id,程序可唯一锁定一条SQL 、parameterType:参数类型、resultType:结果类型

 ⑤测试类:进行查询所有部门

 1 public class Test1 {
 2     SqlSession session ;
 3     @Before
 4     public void initData() throws Exception{
 5         SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
 6         
 7         Reader reader=new FileReader("src/mybatis-config.xml");
 8         
 9         SqlSessionFactory factory=builder.build(reader);
10         
11         session = factory.openSession();
12     }
13     /*
14      * 查询
15      */
16     @Test
17     public void selectDeptTest() throws Exception{
18         
19         
20         List<Dept> selectList = session.selectList("selectDept");
21         
22         for (Dept dept : selectList) {
23             System.out.println(dept.getDeptName());
24         }
25     }
26     

二、同理 增、删、改

如图所示:

 因为在大配置中有别名的使用。参数类型设置成Dept即可

三、使用selectOne()方法【带条件查询】

通过编号来查询部门信息

四、session.getMapper()方法的实现

获取到接口的具体实现类

注:使用接口编程需要注意:namespace需要定义为接口的全限定名。映射语句的id配置需要与接口中的方法名相同

原文地址:https://www.cnblogs.com/Zhangmin123/p/5882172.html