通过一个小例子搭建MyBatis的实例
- JDK1.7
- mybatis-3.4.2
- MySQL
官方下载网址
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值。
更改映射文件,对应实体域模型
- 添加resultMap的配置,这里的字段名column对应数据库字段,property对应域模型的成员变量。
- 修改select标签的映射,改为resultMap,对应上文写的。
<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>
网友评论