pom.xml添加依賴
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
我們創(chuàng)建一張user表
CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
name char(30) NOT NULL,
age int(4) NOT NULL,
sex int(4) NOT NULL,
PRIMARY KEY (id)
)
創(chuàng)建mybats配置文件mybatis_config.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="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/sampledb"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="userMapper.xml"/>
</mappers>
</configuration>
創(chuàng)建mapper映射器userMapper.xml
<mapper namespace="com.hn.spring.UserMapper">
<select id="selectUserByName" resultType="com.hn.spring.User">
select * from user where name = #{name}
</select>
<insert id="insertUser" parameterType="com.hn.spring.User">
insert into user(name,sex,age) VALUES (#{name},#{sex},#{age})
</insert>
</mapper>
在userMapper.xml中我們定義了一個select元素田炭,返回一個user類型的對象教硫。接下來我們實現(xiàn)相應(yīng)的userMappper和user類。
首先我們定義userMapper茶鉴,userMapper定義為一個接口
public interface UserMapper {
User selectUserByName(String name);
void insertUser(User user);
}
該接口定義了一個selectUser方法景用,和select元素相匹配。
接下來我們實現(xiàn)User類割粮。
public class User {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
private int age;
private int sex;
@Override
public String toString() {
return "username is "+name + " age is "+age;
}
}
User類定義了name,age,sex屬性。
接下來我們編寫測試程序從mysql中查詢數(shù)據(jù)映射到我們的User對象中廷雅。
public class TestUser {
public SqlSessionFactory getSessionFactory(){
SqlSessionFactory sqlSessionFactory = null;
try {
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch (IOException ex){
}
return sqlSessionFactory;
}
@Test
public void selectUserByID(){
SqlSessionFactory sqlSessionFactory = getSessionFactory();
SqlSession session = sqlSessionFactory.openSession();
try {
UserMapper userMapper = (UserMapper)session.getMapper(UserMapper.class);
User user1 = new User();
user1.setName("jack");
user1.setAge(20);
user1.setSex(1);
userMapper.insertUser(user1);
User user = userMapper.selectUserByName("jack");
System.out.println(user.toString());
Assert.assertNotNull(user);
}catch (Exception ex){
ex.printStackTrace();
}finally {
session.close();
}
}
}
首先讀取mybatis-config.xml,然后構(gòu)造sqlSessionFactory實例谬盐。使用sqlSessionFactory創(chuàng)建會話,使用會話獲取mapper映射器UserMapper,調(diào)用selectUser方法觸發(fā)sql查詢返回User對象飞傀。