1.在web目录下创建lib目录,将mybatis所需jar包复制到lib中
其中的ojdbc14.jar不用复制,一共使用6个jar包
2.在src下创建包
3.将mybatis-3-mapper.dtd复制到mapper包中
4.将log4j.properties和mybatis-3-config.dtd放入src目录下,并在src目录下创建mybatis.xml
mybatis.xml中内容为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"./mybatis-3-config.dtd">
<configuration>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/com.chinasofti.test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/mapper/DeptMapper.xml"/>
<mapper resource="com/mapper/EmpMapper.xml" />
</mappers>
</configuration>
<environments>标签中填写数据库相关信息
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/com.chinasofti.test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>中一个<mapper>对应一个配置文件xml,一个xml对应dao中的一个接口类,接口类对应实体类
<mappers>
<mapper resource="com/mapper/DeptMapper.xml"/>
</mappers>
实体类与表对应,其中定义了属性、getset方法和构造函数。
dao包中接口类写了需要对表进行的增删改查的方法
public interface IDeptDao {
Dept getDeptByNo(int deptno);
void save(Dept dept);
void del(int deptno);
void update(Dept dept2);
List<Dept> getDepts(Page page);
List<Dept> getDeptsByName(@Param("page") Page page, @Param("dname") String dname);
int getTotal();
}
接口类中的方法在数据层的实现放在mapper包下的xml配置文件中
id是对应的方法名,resultType是返回值类型,parameterType是参数类型,基本类型直接填写即可,自定义的对象需要标明路径,如com.pojo.Dept
<!-- #{deptno} ognl表达式 -->
<select id="getDeptByNo" resultType="com.pojo.Dept" parameterType="int">
select * from dept where deptno=#{deptno}
</select>
<select id="getDeptsByName" resultType="com.pojo.Dept">
select * from dept where 1 = 1
<if test="dname != null and dname!= ''">
and dname like concat( concat( '%', #{dname} ), '%')
</if>
limit #{page.start},#{page.pagesize}
</select>
<if>标签用于动态修改sql语句,test中是条件语句
mapper包中创建一个文件就要在mybatis.xml中加一个<mapper>。
5.创建一个主函数测试
InputStream is = Resources.getResourceAsStream("mybatis.xml");//读取配置文件
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);//连接工厂
SqlSession session = factory.openSession(true);//获得连接
IDeptDao dao=session.getMapper(IDeptDao.class);//得到接口类型
Dept dept=dao.getDeptByNo(1);
System.out.println(dept);