Mybatis框架基本使用
Posted Recently 祝祝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis框架基本使用相关的知识,希望对你有一定的参考价值。
Mybatis框架基本使用
操作
1.引入dtd文件 -> 编写xml文件
myTool\\dtd\\mybatis-3-config.dtd
myTool\\dtd\\mybatis-3-mapper.dtd
2.导入依赖项(jar包)
mybatis-3.5.2.jar
mysql-connector-java-5.1.46.jar
3.配置文件
mybatis.cfg.xml -> 核心配置 <- mybatis-3-config.dtd
连接池
注册映射
Mapper映射 -> 业务操作 <- mybatis-3-mapper.dtd
接口 namespace="com.uplooking.dao.DeptDO"
实体类 resultType="com.uplooking.pojo.DeptVO"
业务方法
<select id="find" resultType="com.uplooking.pojo.DeptVO">
SELECT deptno,dname,loc FROM dept LIMIT #{start},#{limit}
</select>
4.API操作
sqlSession = MyBatisUtils.getSqlSession();
DeptDO deptDO = sqlSession.getMapper(DeptDO.class);
概念
1.核心类
SqlSessionFactoryBuilder -> 类 局部变量
SqlSessionFactory -> 接口 单例模式
DefaultSqlSessionFactory
SqlSession -> 接口 会话独立**,具有回滚提交的功能,在插入元素的时候使用**
DefaultSqlSession
代码演示:
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mytest"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mappers/DeptDO.xml"/>
<mapper resource="mappers/EmpDO.xml"/>
</mappers>
</configuration>
2.ORM -> 对象关系映射
表 列
public class DeptVO {}
实体类 字段
@Param("id")int id
OGNL #{键}
代码演示:
<?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.uplooking.dao.DeptDO">
<select id="findById" resultType="com.uplooking.pojo.DeptVO">
SELECT deptno,dname,loc FROM dept WHERE deptno= #{id}
</select >
<select id="find" resultType="com.uplooking.pojo.DeptVO">
SELECT deptno,dname,loc FROM dept LIMIT #{start},#{end}
</select>
<insert id="insert" >
INSERT INTO dept(deptno,dname,loc)
VALUEs(#{item.deptno},#{item.dname},#{item.loc})
</insert>
<insert id="insert1" >
insert into dept(deptno,dname,loc) VALUEs(#{deptno},#{dname},#{loc})
</insert>
<update id="update">
UPDATE dept SET dname=#{dname},loc=#{loc} WHERE deptno=#{deptno};
</update>
</mapper>
3.业务原理 -> 动态代理
//会话通过动态代理产生代理对象 实现代理接口
//sqlSession.getMapper(type);
//configuration.getMapper(type, this);
//mapperRegistry.getMapper(type, sqlSession);
//mapperProxyFactory.newInstance(sqlSession);
//Proxy.newProxyInstance(mapperInterface.getClassLoader(), new Class[] { mapperInterface }, mapperProxy);
//class MapperProxy<T> implements InvocationHandler
DeptDO deptDO = sqlSession.getMapper(DeptDO.class);
代码演示:
package com.uplooking.test;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.uplooking.dao.DeptDO;
import com.uplooking.dao.EmpDO;
import com.uplooking.pojo.EmpVO;
import com.uplooking.utils.MybatisUtils;
public class MyBatisTest {
// @Test
public void testDeptDO() {
SqlSession session = MybatisUtils.getSqlSession();
DeptDO deptDO = session.getMapper(DeptDO.class);
int i = 10;
System.out.println(deptDO.findById(10));
System.out.println(deptDO.find(0, 2));
}
@Test
public void testEmpDO() {
SqlSession session = MybatisUtils.getSqlSession();
EmpDO empDO = session.getMapper(EmpDO.class);
int i = 10;
System.out.println(empDO.findByid(10));
// System.out.println(deptDO.find(0, 2));
int index=1;
int size=5;
int ix= (index-1)*5;
System.out.println(empDO.find(ix, size));
}
}
生活要永远清醒,永远温柔,永远知进退,慢慢走,闫拓有风景,背后亦有阳光
以上是关于Mybatis框架基本使用的主要内容,如果未能解决你的问题,请参考以下文章
MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段