resultMap 简单使用
1、建数据库
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(64) DEFAULT NULL,
`userPass` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`)
)
2、建model类
public class User implements Serializable{
private Integer id;
private String userName;
private String userPass;
public User() {
super();
}
public User(Integer id, String userName, String userPass) {
this.id = id;
this.userName = userName;
this.userPass = userPass;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPass() {
return userPass;
}
public void setUserPass(String userPass) {
this.userPass = userPass;
}
}
3、基于接口
1)、mpper 文件
<?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">
<!-- namespace 对应接口名称 -->
<mapper namespace="models.IUser">
<resultMap type="User" id="user">
<id property="id" column="id"/>
<result property="userName" column="userName"/>
<result property="userPass" column="userPass"/>
</resultMap>
<!-- id 对应接口方法名 -->
<insert id="insert" parameterType="user">
INSERT INTO User(userName,userPass) VALUES(#{userName},#{userPass})
</insert>
<delete id="delete" parameterType="models.User">
DELETE FROM User WHERE id=#{id}
</delete>
<update id="update" parameterType="user">
UPDATE User u SET u.userName=#{userName} WHERE u.id=#{id}
</update>
<select id="selectUser" parameterType="integer" resultType="user">
select * from User u where u.id=#{id}
</select>
<select id="selectList" resultType="user">
select * from User u
</select>
</mapper>
2)、测试
package rest;
public class SSs {
static SqlSessionFactory sqlSessionFactory;
static{
String resource = "mybaties.xml";
InputStream inputStream;
try {
inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
//添加
private void insertForImpl(){
SqlSession session = sqlSessionFactory.openSession();
IUser iUser = session.getMapper(IUser.class);
User user =new User();
user.setUserName("adadfadasdfasdf");
user.setUserPass("asdfasdfasd");
iUser.insert(user);
session.commit();
}
private void deleteForImpl(){
SqlSession session = sqlSessionFactory.openSession();
IUser iUser = session.getMapper(IUser.class);
User user =new User();
user.setId(89);
iUser.delete(user);
session.commit();
}
private void selectOneForImpl(){
SqlSession session = sqlSessionFactory.openSession();
User user2 = session.selectOne("models.User.sel",1);
System.out.println(user2.getUserName());
}
private void selectListForImpl(){
SqlSession session = sqlSessionFactory.openSession();
IUser iUser = session.getMapper(IUser.class);
List<User> user = iUser.selectList();
for (User user2 : user) {
System.out.println(user2.getUserName());
}
session.commit();
}
public void updateForImpl(){
SqlSession session = sqlSessionFactory.openSession();
IUser iUser = session.getMapper(IUser.class);
User user = iUser.selectUser(90);
System.out.println(user.getUserName());
session.commit();
}
public static void main(String[] args) {
try {
SqlSession session = sqlSessionFactory.openSession();
IUser iUser = session.getMapper(IUser.class);
List<User> user = iUser.selectList();
for (User user2 : user) {
System.out.println(user2.getUserName());
}
session.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
}
4、改进配置文件
<update id="update" parameterType="models.User">
UPDATE User u SET u.userName=#{userName} WHERE u.id=#{id}
</update>
1)、 parameterType="models.User" 值为类全路径
2)、在config文件加上
<typeAliases>
<typeAlias alias="User" type="models.User"/>
</typeAliases>
3)、 parameterType="models.User" 改为 parameterType="User"
原文地址:http://cbg23.blog.51cto.com/7201812/1653780