MyBaits-sql简单操作
来源:互联网 发布:电脑软件管家 编辑:程序博客网 时间:2024/05/19 10:37
1.查询操作
查询语句是 MyBatis 中最常用的元素之一,光能把数据存到数据库中价值并不大,如果还能重新取出来才有用,多数应用也都是查询比修改要频繁。对每个插入、更新或删除操作,通常对应多个查询操作。这是 MyBatis 的基本原则之一,也是将焦点和努力放到查询和结果映射的原因。简单查询的 select 元素是非常简单的。比如:
<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id}</select>
这个语句被称作 selectPerson,接受一个 int(或 Integer)类型的参数,并返回一个 HashMap 类型的对象,其中的键是列名,值便是结果行中的对应值。
注意参数符号:
#{id}
这就告诉 MyBatis 创建一个预处理语句参数,通过 JDBC,这样的一个参数在 SQL 中会由一个“?”来标识,并被传递到一个新的预处理语句中,就像这样:
// Similar JDBC code, NOT MyBatis…String selectPerson = "SELECT * FROM PERSON WHERE ID=?";PreparedStatement ps = conn.prepareStatement(selectPerson);ps.setInt(1,id);
<insert> 标签中的属性
1.1如下是一个parameterType="hashmap" 返回一个对象集合的简单用户和密码查询操作
java的main函数中
session = sqlSessionFactory.openSession();HashMap<String,String> map=new HashMap<String,String>();map.put("userName","user55");map.put("password", "123");List<User> userList= session.selectList("selectUser", map);for(User u: userList){System.out.println("id:"+u.getId());}在全局配置文件mybatis-config.xml的environment标签之前中添加类完整路径的别名
<typeAliases><typeAlias type="cn.javis.pojo.User" alias="User"></typeAlias></typeAliases><environments default="development">user.xml配置文件
<select id="selectUser" parameterType="hashmap" resultType="User">select * from users where username = #{userName} and password=#{password}</select>
1.2对象作为参数传入,hashmap作为返回值
在java测试文件中
public static void main(String[] args) { SqlSession session = getSqlSession(); User user=new User(); user.setId(10149); Map<String,Object> map=session.selectOne("selectUser2Map", user); for (Map.Entry<String,Object> m:map.entrySet()){ System.out.println(m.getKey()+"="+m.getValue()); } session.close(); System.out.println(); }在user.xml配置中
<select id="selectUser2Map" resultType="hashmap"> select * from users where id = #{id} </select>
2.更新操作
数据变更语句 insert,update 和 delete 的实现非常接近,他们的属性如下
2.1 insert操作
在java测试文件中
public static void insetDemo(){ SqlSession session = getSqlSession(); User user=new User(); user.setUsername("javis006"); user.setPassword("666666"); user.setEmail("javis006@qq.com"); session.insert("userInsert", user); session.commit(); //没有配置自动提交,更新操作需手动提交 session.close(); }
在user.xml映射配置文件中,这里使用到了上面表格中的自增id列和主键,如果你传入的是一个对象,insert后,对象的id属性会自动被赋值
<insert id="userInsert" keyProperty="id" useGeneratedKeys="true"> insert into users(username,password,email) values(#{username},#{password},#{email}) </insert>
结果:
+-------+----------+----------+-----------------+| id | username | password | email |+-------+----------+----------+-----------------+| 10149 | javis006 | 666666 | javis006@qq.com |+-------+----------+----------+-----------------+
2.2 update操作
update基本和insert类似,java测试文件中
public static void updateDemo(){ SqlSession session = getSqlSession(); User user=new User(); user.setUsername("javis007"); user.setPassword("77777777"); user.setEmail("javis006@qq.com"); user.setId(10149); session.update("userUpdate", user); session.commit(); //没有配置自动提交,更新操作需手动提交 session.close(); }在user.xml映射配置文件中,这里使用到了很多都是默认的参数,其会自动匹配字段
<update id="userUpdate"> update users set username=#{username},password=#{password} where id=${id} </update>结果:
+-------+----------+----------+-----------------+| id | username | password | email |+-------+----------+----------+-----------------+| 10149 | javis007 | 77777777 | javis006@qq.com |+-------+----------+----------+-----------------+
2.3delete操作
delete的话和上面的2种操作类似,下面我就介绍通过注解的方法来实现删除操作
定义一个接口
public interface IUserMap { @Delete("delete from users where id=#{id}") public void deleteById(int id);}在全局配置mybatis-config.xml的mapers中添加
<mappers><mapper resource="cn/javis/map/user.xml"/> <!--我们编写sql语句的文件路径--><mapper class="cn.javis.map.IUserMap"/> <!--通过注解方式实现--></mappers>
在java测试文件中
public static void deleteDemo(){ SqlSession session = getSqlSession(); //使用session的子类构造方法 IUserMap iUserMap=session.getMapper(IUserMap.class); iUserMap.deleteById(55); session.commit(); session.close(); }
ps:使用注解的形式不好解决复杂的逻辑,官方推荐使用map配置文件来写sql
0 0
- MyBaits-sql简单操作
- Mybaits简单实例
- mybaits之动态sql
- mybaits动态 SQL
- MyBaits 动态sql
- mybaits批量操作数据库
- mybaits操作返回主键
- Mybaits 批量操作
- mybaits+oracle批量操作
- mybaits中的批量操作
- mybaits 环境搭建简单示例
- 动态SQL语句--mysql--mybaits-
- Mybaits 的动态sql语句
- mybaits控制台显示SQL语句
- 简单的sql操作
- 简单数据库操作(SQL)
- MyBaits
- MyBaits
- Jquery中表单事件
- Jmeter初接触
- 设计模式概述
- Java单元测试工具:JUnit4——JUnit测试套件使用及参数化设置
- MongoDB学习
- MyBaits-sql简单操作
- Echarts简介
- jvm参数
- 【附源码】搭建spring mvc +freemarker
- PHP基于GD库验证码的制作
- April English Summary
- SSH三大框架的工作原理及流程
- C语言-零散的笔记
- 网络基本功:TCP拥塞控制机制