MyBatis3的简单小例子

2018-06-24  本文已影响0人  playman

通过一个小例子搭建MyBatis的实例

官方下载网址

jar包下载

引入jar包,创建项目

创建一个configureation.xml
<?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>
    <environments default="mydb">
        <environment id="mydb">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/zzq" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/ben/pojo/Students.xml"/>
    </mappers>
</configuration>
注意:1、environments和environment的参数要一样
      2、设置transactionManager,里面填对应的类型,用MySQL就写JDBC。
      3、dataSource中type一般填写POOLED即可。
      4、mappers标签内填写配置的映射文件
pojo层的文件

Students.java

package com.ben.pojo;

public class Students {

    private Integer id;
    private String user_name;

    public Integer getId() {
        return id;
    }

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

    public String getUser_name() {
        return user_name;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }

}
注意:这里的成员变量要与数据库中的变量名相同
mapper的xml文件

Students.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.ben.pojo">
    <sql id="cols">
        id,user_name
    </sql>
    <select id="findAll" resultType="com.ben.pojo.Students">
        select
        <include refid="cols" />
        from students
    </select>
</mapper>
注意:1、namespace填写到当前包路径下就好,一般放在pojo层即可。
      2、sql标签的id属性的值可以把数据库的字段名写上,这样可以在下面直接使用,减少代码量。
      3、select标签中,id定义的相当于方法名,会调用的。resultType是对应的pojo的域模型。
      4、sql语句的字段和表名对应数据库中的表。

测试

@Test
public void test() {
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Students.class.getResourceAsStream("/configuration.xml"));
    System.out.println(sqlSessionFactory);
    SqlSession session = sqlSessionFactory.openSession();
    List<Students> list = session.selectList("com.ben.pojo.findAll");
    for(Students user:list){
        System.out.println(user.getUser_name());
    }
}
注意:通过session查询内容,调用的方法就是在mapper的xml中配置的包名路径+select的id值。

更改映射文件,对应实体域模型

<mapper namespace="com.ben.pojo">
    <resultMap type="com.ben.pojo.Students" id="students">
        <id column="id" property="id" javaType="java.lang.Integer"/>    
        <result column="user_name" property="userName" javaType="java.lang.String"/>
    </resultMap>
    <sql id="cols">
        id,user_name
    </sql>
    <select id="findAll" resultMap="students">
        select
        <include refid="cols" />
        from students
    </select>
</mapper>
上一篇下一篇

猜你喜欢

热点阅读