## MyBatis的Dao编写【mapper代理方式实现】
step1: 写一个接口,并写抽象方法;
package com.sjl.mapper; import com.sjl.model.User; public interface UserMapper {
/*
* 保存一个用户
* */
public int save(User user);//返回受影响的行数
public User findUserById(int id);
}
step2: 在同包下建一个UserMapper.xml(具体sql方法的显现类的方法的实现),这个相当于
是DAO的实现类,MyBatis会为mapper接口生成动态代理实现类;(配置文件相当于是DAO的
实现类,里面是一些具体的增删改查的方法)
(说明:入参,返回值,id等要与接口类中的对应,具体看下面的注释)
<?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.sjl.mapper.UserMapper">
<insert id="save" parameterType="com.sjl.mapper.User">
insert into user(username,sex,birthday,address)
value (#{username},#{sex},#{birthday},#{address});
</insert> <!--受影响的返回的行数不用写,可以不用写,无意义--> <select id="findUserById" parameterType="int"
resultType="com.sjl.mapper.User"> </select> </mapper>
<!--
com.sjl.mapper.UserMapper 包名+接口名
id="save" 方法名
parameterType="com.sjl.mapper.User" 入参
resultType 返回结果
--> step3:在src下的sqlconf.xml中的添加如下内容,加载执行DAO方法的映射文件;
<mappers>
<!--写映射文件的名字-->
<mapper resource="com/gyf/mapper/UserMapper.xml"></mapper>
</mappers>
step4:测试类;
package com.sjl.test; import com.sjl.mapper.UserMapper;
import com.sjl.model.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.List; public class Demo02 {
SqlSession session; @Before
public void before() throws IOException{
System.out.println("before...获取session");
//a)读取配置文件;
InputStream is=Resources.getResourceAsStream("SqlMapConfig.xml");
//b)通过SqlSessionFactoryBuilder创建SqlSessionFactory会话工厂 。
SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is);
// c)通过SqlSessionFactory创建SqlSession。
session=sessionFactory.openSession();
}
@After
public void after(){ //关闭SqlSession。
session.close();
} @Test
public void test1() throws IOException{
//通过session拿到这个接口的代理 代理直接转成接口的实现类,并指向UserMapper这个接口
UserMapper userMapper=session.getMapper(UserMapper.class); //获取数据
System.out.println(userMapper.findUserById(1)); //保存
User user2=new User("xx","x",new Date(),"xx");
userMapper.save(user2);
session.commit();
}
51 }
--------------------------------------------------------------------------------------------------
MyBatis 入门程序步骤:
1).用Mysql终端建库、建表;
2).添加核心jar包和依赖(Mysql驱动jar);
3).建立日志log4j.properties(用于控制台输出sql的);
4).依据数据库字段进行写一个javaBean
5).src目录下建一个xxxMapper.xml这个映射文件是用来配置sql的。
6) .src目录下建一个核心配置文件mybatis-config.xml用来配置数据库和数据库连接池等信息,并添加一个文件来加载所有的映射;
7).src目录下建一个测试包,测试包下建一个测试类。