mybatis学习笔记二(实现数据的增删改查)

实现数据的增删改查


public interface IUserOperation {
/* 添加用户 */
public void addUser(User user);


/* 添加用户 */
public void insertSelective(User user);


/* 删除用户 */
public void deleteUser(int id);


/* 更新用户 */
public void updateUser(User user);


/* 按用户id查询用户 */
public User selectUserByID(int id);


/* 按用户名进行模糊查询 */
public List<User> selectUsers(String userName);


}


user.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="cn.yue.mybatis.inter.IUserOperation">


<!-- 自定义的returnMap,返回自定义类型 -->
<resultMap type="cn.yue.mybatis.model.User" id="resultListUser">
<id column="id" property="id" jdbcType="INTEGER" />
<result column="userName" property="userName" jdbcType="VARCHAR" />
<result column="userAge" property="userAge" jdbcType="VARCHAR" />
<result column="userAddress" property="userAddress" jdbcType="VARCHAR" />
</resultMap>
<!-- 添加用户 -->
<insert id="addUser" parameterType="cn.yue.mybatis.model.User"
useGeneratedKeys="true" keyProperty="id">
insert into
user(userName,userAge,userAddress)
values(#{userName,jdbcType=VARCHAR},#{userAge,jdbcType=VARCHAR},#{userAddress,jdbcType=VARCHAR})
</insert>


<!-- 添加用户 -->
<insert id="insertSelective" parameterType="cn.yue.mybatis.model.User"
useGeneratedKeys="true" keyProperty="id">
insert into user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="userName != null">
userName,
</if>
<if test="userAge != null">
userAge,
</if>
<if test="userAddress != null">
userAddress,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="userName != null">
#{userName,jdbcType=VARCHAR},
</if>
<if test="userAge != null">
#{userAge,jdbcType=VARCHAR},
</if>
<if test="userAddress != null">
#{userAddress,jdbcType=VARCHAR},
</if>
</trim>
</insert>


<!-- 删除用户 -->
<delete id="deleteUser" parameterType="int">
delete from user where
id=#{id}
</delete>


<!-- 更新用户 -->
<update id="updateUser" parameterType="cn.yue.mybatis.model.User">
update user set
userName=#{userName,jdbcType=VARCHAR},userAge=#{userAge,jdbcType=VARCHAR},userAddress=#{userAddress,jdbcType=VARCHAR}
where id=#{id}
</update>




<!-- 按照用户id进行查询 -->
<select id="selectUserByID" parameterType="int"
resultType="cn.yue.mybatis.model.User">
select * from `user` where id = #{id}
</select>


<!-- 按照用户名模糊查询 -->
<select id="selectUsers" parameterType="string" resultMap="resultListUser">
select * from user where userName like #{userName}
</select>
</mapper>




测试文件:
public class Test {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
// 加载配置文件
static {
try {
reader = Resources.getResourceAsReader("Configuration.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}


public static SqlSessionFactory getSession() {
return sqlSessionFactory;
}


/**
* 添加用户

* @param user
*/
public static void addUser(User user) {
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
// userOperation.addUser(user);
userOperation.insertSelective(user);
session.commit();
System.out.println("当前增加的用户 id为:" + user.getId());
} finally {
session.close();
}
}


/**
* 删除用户

* @param user
*/
public static void delUser(int id) {
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
userOperation.deleteUser(id);
session.commit();
} finally {
session.close();
}
}


/**
* 更新用户

* @param user
*/
public static void updateUser() {
// 先得到用户,然后修改,提交。
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
User user = userOperation.selectUserByID(1);
user.setUserAddress("zhandian");
userOperation.updateUser(user);
session.commit();


} finally {
session.close();
}
}


/**
* 按照用户id进行查询

* @param id
*/
public static void getUserById(int id) {
SqlSession session = sqlSessionFactory.openSession();
try {
// 方式一:
// User user =
// session.selectOne("cn.yue.mybatis.models.IUserOperation.selectUserByID",
// 1);
// 方式二:
IUserOperation userOperation = session.getMapper(IUserOperation.class);
User user = userOperation.selectUserByID(1);
System.out.println("userName: " + user.getUserName());
System.out.println("userAddress: " + user.getUserAddress());
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}


/**
* 按用户名进行模糊查询

* @param userName
*/
public static void getUserList(String userName) {
SqlSession session = sqlSessionFactory.openSession();
try {
IUserOperation userOperation = session.getMapper(IUserOperation.class);
List<User> users = userOperation.selectUsers(userName);
for (User user : users) {
System.out.println("userId: " + user.getId() + "\n" + "userName: " + user.getUserName() + "\n" + "userAddress: " + user.getUserAddress());
}
} finally {
session.close();
}
}


public static void main(String[] args) {
//
User user = new User();
user.setUserAddress("people park");
user.setUserName("three zhang");
user.setUserAge("20");
//
// addUser(user);


//
// getUserById(1);
//
// getUserList("%");
//
// updateUser();
delUser(1);
}

}


参考:http://blog.csdn.net/techbirds_bao/article/details/9233599/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值