mybatis增删改应用(三)
来源:互联网 发布:js domloaded 编辑:程序博客网 时间:2024/06/01 10:25
上篇博客我们进行了简单查询,在mybatis一、二的基础上,我们来实现模糊查询和增删改的简单使用。
模糊查询:user.xml中的sql语句
<select id="findUserByName" parameterType="java.lang.String" resultType="cn.itcast.mybatis.po.User">SELECT * FROM USER WHERE username LIKE '%${value}%'</select>
详解:这里我们根据用户名称查询用户信息,可能返回多条记录。resultType:指定的是单条记录所映射的java对象类型。${}:表示拼接sql串,将接收到的参数内容不加任何修饰的拼接在SQL中。需要注意的是使用${}拼接sql,有引起sql注入的风险。${value}接收输入参数的内容,如果传入类型是简单类型,${}中只能使用valye。src的first包中mybatisfirst.java类添加测试程序如下:
@Testpublic void findUserByNameTest() throws IOException {//mybatis配置文件String resource = "SqlMapConfig.xml";//得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);//创建会话工厂,传入mybatis的配置文件信息SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //通过工厂得到sqlsessionSqlSession sqlSession = sqlSessionFactory.openSession(); //list中的user和映射文件中resultType所指定的类型一致List<User> list = sqlSession.selectList("test.findUserByName", "小明");System.out.println(list);sqlSession.close();}
添加用户:user.xml中添加用户的sql
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User"> insert into user(username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address}) </insert>
详解:parameterType指定输入参数的类型是pojo。mybatisfirst中添加测试代码:
// 添加添加用户实体@Testpublic void insertUserTest() throws IOException {// mybatis配置文件String resource = "SqlMapConfig.xml";// 得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);//创建会话工厂,传入mybatis的配置文件信息SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 通过工程得到SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 插入用户对象User user = new User();user.setUsername("王小军");user.setBirthday(new Date());user.setSex("1");user.setAddress("河北");//list中的user和映射文件中resulttype所指定的类型一致sqlSession.insert("test.insertUser", user);//提交事务sqlSession.commit();// 关闭会话sqlSession.close();}
删除用户:user.xml中配置删除用户的sql
<delete id="deleteUser" parameterType="java.lang.Integer">delete from user where id=#{id}</delete>
mybatisfirst中添加测试代码:
// 删除用户@Testpublic void deleteUserTest() throws IOException {// mybatis配置文件String resource = "SqlMapConfig.xml";// 得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);//创建会话工厂,传入mybatis的配置文件信息SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 通过工厂得到SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 传入id删除用户sqlSession.delete("test.deleteUser", 39);// 提交事务sqlSession.commit();// 关闭会话sqlSession.close();}
更新用户:user.xml中添加更新用户的sql
<update id="updateUser" parameterType="cn.itcast.mybatis.po.User">update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id}</update>
详解:parameterType指定user对象,包括id和更新信息,注意,id必须存在#{id}:从输入user对象中获取id属性值mybatisfirst中测试代码:
// 更新用户信息@Testpublic void updateUserTest() throws IOException {// mybatis配置文件String resource = "SqlMapConfig.xml";// 得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);// 创建会话工厂,传入mybatis的配置文件信息SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);// 通过工厂得到SqlSessionSqlSession sqlSession = sqlSessionFactory.openSession();// 更新用户信息User user = new User();//必须设置iduser.setId(41);user.setUsername("王大军");user.setBirthday(new Date());user.setSex("2");user.setAddress("河北");sqlSession.update("test.updateUser", user);// 提高事务sqlSession.commit();// 关闭会话sqlSession.close();}
下面我们对一些常用的属性进行总结归纳:
1. parameterType
在映射文件中通过parameterType指定输入 参数的类型。
2. resultType
在映射文件中通过resultType指定输出结果的类型。
3. #{}和${}
#{}表示一个占位符号,#{}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,#{}中可以写成value或其它名称。
#{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。
${}表示一个拼接符号,会引用sql注入,所以不建议使用${}。
${}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,${}中只能写成value。
${}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。
4. selectOne和selectList
selectOne表示查询出一条记录进行映射。如果使用selectOne可以实现使用selectList也可以实现(list中只有一个对象)。
selectList表示查询出一个列表(多条记录)进行映射。如果使用selectList查询多条记录,不能使用selectOne。
阅读全文
0 0
- mybatis增删改应用(三)
- Mybatis入门(三):增删改查
- mybatis学习(三)--增删改查
- mybatis入门(三)增删改查
- Mybatis基础入门(三)——增删改查
- MyBatis学习笔记(三)---增删改查
- MyBatis数据持久化(三)增删改查
- myBatis系列之三:增删改查
- MyBatis(三)增删改查--基于接口
- MyBatis框架(增删改)
- Mybatis基本应用实现增删改查
- mybatis的增删查改(CRUD)
- (2)MyBatis之增删改查
- MyBatis增删改查(CRUD)操作
- 2、Mybatis增删改查(CURD)
- Mybatis 增删改查
- mybatis增删改查
- mybatis增删改查
- Drying POJ
- cogs [BOI2007]摩基亚Mokia CDQ 分治
- 引用新体验!
- cuda之线程分配
- angular2路由预加载策略
- mybatis增删改应用(三)
- SQLServer 中提高查询性能的方法
- 关于ES6的 模块功能 Module 中export import的用法和注意之处
- Salty Fish
- Eclipse注释模板
- 数据结构实验之查找七:线性之哈希表
- java之继承剖析
- 目前最流行的测试工具
- activiti工作流相关表查询