一、创建Maven工程,在pom.xml填写依赖。
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <!--连接数据库需要--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <!--junit测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--日志,编译期有效--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> <scope>compile</scope> </dependency>
二、编写用于连接数据库的工具类SqlSessionFactoryUtils
public class SqlSessionFactoryUilts {
private static SqlSessionFactory sqlSessionFactory = null;
//私有化工具类,防止被外部创建
private SqlSessionFactoryUilts(){}
private static SqlSessionFactory getSqlSessionFactory(){
if (sqlSessionFactory != null){
return sqlSessionFactory;
}else {
try {
sqlSessionFactory = new SqlSessionFactoryBuilder().build( Resources.getResourceAsStream( "mybatis-config.xml" ) );
return sqlSessionFactory;
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public static SqlSession openSqlsession(){
if (sqlSessionFactory == null){
getSqlSessionFactory();
}
return sqlSessionFactory.openSession();
}
}
三、编写pojo类Role
public class Role {
private String roleName;
private int roleId;
private String roleDesc;
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public int getRoleId() {
return roleId;
}
public void setRoleId(int roleId) {
this.roleId = roleId;
}
public String getRoleDesc() {
return roleDesc;
}
public void setRoleDesc(String roleDesc) {
this.roleDesc = roleDesc;
}
@Override
public String toString() {
return "Role{" +
"roleName='" + roleName + '\'' +
", roleId=" + roleId +
", roleDesc='" + roleDesc + '\'' +
'}';
}
}
四、编写mybatis的主配置文件以及用于连接数据库properties文件
1.mybatis-config.xml
<!--引用外部资源-->
<properties resource="jdbc.properties"/>
<!--使用驼峰映射-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!--起别名-->
<typeAliases>
<typeAlias type="com.wanfei.pojo.Role" alias="Role"/>
<package name="com.wanfei.pojo.Role"/>
</typeAliases>
<environments default="environment">
<environment id="environment">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/wanfei/mapper/RoleMapper"/>
</mappers>
2.jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///cainiao
username=root
password=****
五、编写映射接口和相应的映射文件,注意接口和映射文件的包名必须相同
1、RoleMapper.java
public interface RoleMapper {
Role getRole(int id);
}
2、RoleMapper.xml
<?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.wanfei.mapper.RoleMapper">
<resultMap id="roleMapper" type="Role">
<result property="roleId" column="ROLE_ID"/>
<result property="roleName" column="ROLE_NAME"/>
<result property="roleDesc" column="ROLE_DESC"/>
</resultMap>
<select id="getRole" resultMap="roleMapper" parameterType="int">
select * from role where ID = #{id}
</select>
</mapper>
六、编写测试类
public class Test {
@org.junit.Test
public void test(){
SqlSession session = SqlSessionFactoryUilts.openSqlsession();
RoleMapper roleMapper = session.getMapper( RoleMapper.class );
Role role = roleMapper.getRole( 2 );
System.out.println(role);
}
}
控制台输出结果:
Role{roleName='总裁', roleId=0, roleDesc='管理整个公司'}
Process finished with exit code 0