Mybatis入门到精通-利用SqlSession实现CRUD操作
来源:互联网 发布:软件开发包括哪些课程 编辑:程序博客网 时间:2024/06/06 19:06
User.java
package com.qfedu.entities;import java.io.Serializable;import java.util.Date;public class User implements Serializable{ private static final long serialVersionUID=1L; private int id; private String username; private Date birthday; private String sex; private String address; public User(int id, String username, Date birthday, String sex, String address) { this.id = id; this.username = username; this.birthday = birthday; this.sex = sex; this.address = address; } public User() { } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", birthday=" + birthday + ", sex='" + sex + '\'' + ", address='" + address + '\'' + '}'; }}
User.xml
<!-- namespace:配置名称空间,对配置的statement进行分类管理 此时名称可以任意 当使用Mapper代理时,namespace具有特殊的含义与功能 --><mapper namespace="user"> </mapper>
3.1新增操作
在User.xml配置文件中配置<insert>标签,用于执行插入操作。
在插入操作完成之前或之后,可以配置<selectKey>标签获得生成的主键的值,获得插入之前还是之后的值,可以通过配置order属性来指定。
LAST_INSERT_ID:该函数是mysql的函数,获取自增主键的ID,它必须配合insert语句一起使用
如果单纯的插入,不需要返回主键的值,<selectKey>标签可以不配置
<mapper namespace="user"> <insert id="addUser" parameterType="com.qfedu.entities.User"> <selectKey keyProperty="id" resultType="int" order="AFTER"> SELECT LAST_INSERT_ID() </selectKey> insert into user(username,sex,birthday,address) values(#{username},#{sex},#{birthday},#{address}) </insert></mapper>
测试类:直接执行配置的statement
//4.执行 User user = new User(); user.setUsername("Jack"); user.setBirthday(new Date()); sqlSession.insert("user.addUser",user); sqlSession.commit();
3.2删除操作
在映射文件文件中使用<delete>标签配置删除的statement。
<delete id="deleteUser" parameterType="int"> delete from user where id=#{id}</delete>
测试代码如下,直接执行配置的statement,可以查看结果。
SqlSession sqlSession = sqlSessionFactory.openSession();//执行sqlSession.delete("user.delUser",1);sqlSession.commit();
3.3修改操作
在映射文件中使用<update>标签配置修改的statement。
<update id="updateUser" parameterType="com.qfedu.entities.User"> update user set username = #{username}, sex = #{sex}, birthday = #{birthday}, address = #{address} where id = #{id} </update>
测试:
//4.执行 User user = new User(); //构建user参数,没有赋值的属性采取默认值 user.setId(33); user.setUsername("陈"); user.setAddress("青岛"); sqlSession.update("user.updateUser",user); sqlSession.commit();
3.4查询操作
在映射文件中使用<select>标签配置查询的statement。
注意:
{} 相当于占位符
{id} 其中的id可以表示输入参数的名称,如果是简单类型,名称可以随意
${} 表示拼接slq语句
{value} 其中的value可以表示输入参数的名称,如果是简单类型,参数名必须为value
<select id="getUserById" parameterType="int" resultType="com.qfedu.entities.User"> select * from user where id = #{id} </select> <select id="findByUsername" parameterType="java.lang.String" resultType="com.qfedu.entities.User"> select * from user where username like '%${value}%' </select>
执行
User user = sqlSession.selectOne("user.getUserById",22); System.out.println(user); List<User> list = sqlSession.selectList("user.findByUsername","陈"); for(User user :list){ System.out.println(user); } sqlSession.commit();
阅读全文
0 0
- Mybatis入门到精通-利用SqlSession实现CRUD操作
- Mybatis入门到精通-获取SqlSession对象
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession .
- 1.MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
- MyBatis 入门到精通(一) 了解MyBatis获取SqlSession
- mybatis入门-实现基本CRUD操作
- MyBatis(一) 入门案例实现CRUD操作
- MyBatis实现CRUD操作
- MyBatis 入门到精通
- mybatis入门到精通
- MyBatis入门到精通
- MyBatis入门02 实现CRUD
- mybatis 从入门到精通
- mybatis从入门到精通
- 为弹框设置滚动条
- uva1382 Distant Galaxy
- Mybatis入门到精通-获取SqlSession对象
- 运用递归将两个链表进行连接
- 比特币交易的数据结构与签名类型
- Mybatis入门到精通-利用SqlSession实现CRUD操作
- 图像处理(七)导向滤波磨皮
- 【C/C++】1072. Gas Station (30)
- Hibernate详解
- Struts2认识
- 解决Error: undefined reference to `__android_log_print'
- 深入浅出——网络模型中Inceptionv1到 v4 的作用与结构全解析
- 设置SSH持久连接
- cocos2d-js音效的处理