mybatis 动态mapper代理+动态sql+maven项目
1】maven项目:
在pom.xml中有七个标签,其中Dependencies:添加jar包的页面(重要);
2】动态mapper项目结构:
Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。
1、 Mapper.xml文件中的namespace与mapper接口的类路径相同。
2、 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同。
3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同。
4、 Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同。
pojo,mapper.xml(名字不唯一),mapper接口,sqlMapConfig.xml(核心配置文件),log4j.properties(日志文件);
<select id="findUserList" parameterType="jemal.mybatis.User" resultType="jemal.mybatis.User">
<if test="id!=null and id!=''">
<if test="username!=null and username!=''">
and username like '%${username}%'
sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
userlist=userMapper.findUserList(user);
<?xml version="1.0" encoding="UTF-8"?>
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="jemal.mybatis.UserMapper">
<select id="findUserById" parameterType="int" resultType="jemal.mybatis.User">
select * from user where id=#{id}
//根据id 查询用户信息,方法名、返回值、参数分别和mapper.xml文件对应
public User findUserById(int id) throws Exception;
<?xml version="1.0" encoding="UTF-8"?>
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="123456" />
<mapper resource="UserMapper.xml"/>
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public static SqlSessionFactory getsqlsessionFactory() {
String inputsring="UserMapConfig.xml";
inputStream=Resources.getResourceAsStream(inputsring);
SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);
SqlSessionFactory sqlSessionFactory=TestMybatis.getsqlsessionFactory();
public void findUserById() throws Exception {
sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
user=userMapper.findUserById(24);
发表评论: