您的位置:首页 > 大数据 > 人工智能

mybatis学习(二)搭建一个xml形式的mybaits测试

2015-11-01 11:19 423 查看
本文目的在于快速搭建一个基于xml的mybatis简单测试看看mybatis如何使用,区别于注解形式。
不过一般也不这么用,都是使用spring-mybatis。通过将xml配置到spring中去的。也不自己创建SqlSessionFactory等。
这里类似hibernate的sessionFactory创建。

1.实体类和数据库表
就不写太多了,直接贴代码
create table user(
id int(10) not null,
    user_name varchar(20),
    user_password varchar(20)
);
<span style="font-size:14px;">package demo.domain;

/**
* Created by guofeipeng on 15/10/25.
*/
public class User {
private int id;
private String userName;
private String password;

public int getId() {
return id;
}

public String getUserName() {
return userName;
}

public String getPassword() {
return password;
}

public void setId(int id) {
this.id = id;
}

public void setUserName(String userName) {
this.userName = userName;
}

public void setPassword(String password) {
this.password = password;
}

@Override
public String toString() {
return "User{" +
"id=" + id +
", userName='" + userName + '\'' +
", password='" + password + '\'' +
'}';
}
}
</span>

2.配置configuration.xml 用来加载数据源、实体映射。
<span style="font-size:14px;"><?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>
<typeAliases>
<!--给实体类起一个别名 user -->
<typeAlias type="demo.domain.User" alias="User" />
</typeAliases>
<!--数据源配置 这块用 BD2数据库 -->
<environments default="development">
<environment id="development">
<transactionManager type="jdbc" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/mypro" />
<property name="username" value="gfp" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<!--userMapper.xml装载进来 同等于把“dao”的实现装载进来 -->
<mapper resource="mapper/userMapper.xml" />
</mappers>
</configuration>
</span>

xml步骤:
(1)配置typeAliases实体别名,用来在实体mappe.xml中使用。其中typeAlias标签的type=demo.domain.User写实体类的全限定名。
(2)配置数据源dataSource
(3)加载实体的mapper.xml配置文件。

3.书写dao层代码
<span style="font-size:14px;">package demo.dao;

import demo.domain.User;

/**
* Created by guofeipeng on 15/10/25.
*/
public interface UserDaoMapper{
public User getUserById(int id);
}</span>

4.配置实体类映射mapper.xml
userMapper.xml
<span style="font-size:14px;"><?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="demo.dao.UserDaoMapper">

<resultMap id="userResultMap" type="User">
<id column="id" property="id"></id>
<result column="user_name" property="userName"></result>
<result column="user_password" property="password"></result>
</resultMap>
<select id="getUserById" parameterType="int" resultType="demo.domain.User" resultMap="userResultMap">
select * from user where id=#{id}
</select>
</mapper>
</span>

xml配置步骤:
(1)resultMap标签
这里映射configration.xml中配置的实体类别名,并且将java pojo的属性与数据库字段对应起来。
id是主键,result是其他字段。
(2)select标签
写查询SQL语句,id属性与dao层方法对应。 resultType写权限定名,返回值类型。resultMap属性写第一步配置的resultMap标签id
(3)namespace的值必须是java 实体mapper接口的权限定名。
4.测试结果
<span style="font-size:14px;">public static void main(String[] args){
InputStream is = DemoTest.class.getClassLoader().getResourceAsStream("configuration.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = sessionFactory.openSession();
UserDaoMapper userMapper = session.getMapper(UserDaoMapper.class);
User user = userMapper.getUserById(1);
System.out.println("查询结构==》"+user);
}</span>

(1)加载configuration.xml文件。
(2)创建sqlSessionFactory
(3)创建sqlsession
(4)执行Dao,执行dao方法。

附:项目目录结构

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: