MyBatis框架学习之增删改查
2015-06-18 16:05
323 查看
一、MyBatis jar包
下载mybatis的jar包,本文中使用maven进行管理,配置如下:<!-- 导入mybatis jar包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <!-- 导入oraclejar包 --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>10.2.0.1.0</version> </dependency>
其中对于oracle的jar包,需要使用mvn install命令进行安装,需要提前下载好所需要的oraclejar包,具体命令如下:
mvn install:install-file -Dfile=jar包的位置 -DgroupId=pom中groupId -DartifactId=pom中artifactId -Dversion=pom中version -Dpackaging=jar
二、Mybatis xml配置
1、配置数据源mybatis-config.xml:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/> <property name="username" value="****"/> <property name="password" value="***"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/mybatis/entity/userMapping.xml"/><!-- 映射文件路径 --> </mappers> </configuration>
2、配置实体映射文件userMapping.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="mybatis.testcurd"> <!-- 以下使用实体来进行增删改查 --> <!-- 插入语句 --> <insert id="insertUser" parameterType="com.mybatis.entity.User"><!-- 传入的参数的类型 --> <selectKey resultType="java.lang.Long" keyProperty="id" order="BEFORE"> SELECT user_t_seq.nextval FROM DUAL </selectKey> insert into user_t(id,username,password,birthday,email,zipcode,address) values(#{id},#{username},#{password},#{birthday},#{email},#{zipcode},#{address}) </insert> <!-- 查询 语句,返回值为list集合--> <select id="queryUserInfoById" parameterType="long" resultType="com.mybatis.entity.User"> select * from user_t where id = #{id} </select> <!-- 更新语句 --> <update id="updateUserById" parameterType="com.mybatis.entity.User"> update user_t set username=#{username} where id=#{id} </update> <!-- 删除语句 --> <delete id="deleteUserById" parameterType="long"> delete user_t where id = #{id} </delete> <!-- 使用map来进行增删改查 --> <insert id="insertUserByMap" parameterType="map"> <selectKey keyColumn="id" keyProperty="id" order="BEFORE" resultType="java.lang.Long"> select user_t_seq.nextval from dual </selectKey> insert into user_t(id,username,password,birthday,email,zipcode,address) values(#{id},#{username},#{password},#{birthday},#{email},#{zipcode},#{address}) </insert> <!--使用map传递参数 --> <select id="selectUserByMap" parameterType="map" resultType="map"> select * from user_t </select> <select id="selectOneUserByMap" parameterType="map" resultType="map"> select * from user_t where id= #{id} </select> <update id="updateUserByMap" parameterType="map"> update user_t set username=#{username} where id=#{id} </update> <delete id="deleteUserByMap" parameterType="map"> delete from user_t where id = #{id} </delete> </mapper>
3、进行测试,测试代码如下:
private SqlSession session = null; @Before public void before(){ SqlSessionFactory factory = SqlSessionFactoryUtil.getSqlSessionFactory(); if(factory != null){ session = factory.openSession(); } } @Test public void insert(){ User user = new User(); user.setUsername("张三"); user.setPassword("zhangsan123"); user.setAddress("上海市浦东新区周家渡"); try { user.setBirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1990-08-03")); } catch (ParseException e) { e.printStackTrace(); } user.setZipcode("217651"); user.setEmail("zhangsan@126.com"); if(session != null){ session.insert("mybatis.testcurd.insertUser",user); } } @Test public void testQueryById(){ if(session != null){ List<User> lists = session.selectList("mybatis.testcurd.queryUserInfoById", 1L); for(User user:lists){ System.out.println("id:" + user.getId() + ",username:" + user.getUsername() + ",password:"+ user.getPassword() + ",address:" + user.getAddress() + ",email:" + user.getEmail() + ",zipcode:" + user.getZipcode()); } } } @Test public void testUpdateById(){ User user = new User(); user.setId(1); user.setUsername("张三三"); if(session != null){ session.update("mybatis.testcurd.updateUserById", user); } } @Test public void testDeleteById(){ if(session != null){ session.delete("mybatis.testcurd.deleteUserById",1l); } } //使用map来进行数据的增 删 改 查 @Test public void testInsertUserMap(){ Map map = new HashMap(); map.put("username", "lisi"); map.put("password", "lisi123"); map.put("address", "上海市黄浦区南京东路"); map.put("email", "lisi@126.com"); map.put("zipcode", "123456"); try { map.put("birthday", new SimpleDateFormat("yyyy-MM-dd").parse("1990-08-02")); } catch (ParseException e) { e.printStackTrace(); } if(session != null){ session.insert("mybatis.testcurd.insertUserByMap", map); } } //使用map进行查询 @Test public void testSelectUserByMap(){ if(session != null){ //查询所有 Map map = session.selectMap("mybatis.testcurd.selectUserByMap","username"); Set<String> keys = map.keySet(); for(String key:keys){ Map mapValue = (Map) map.get(key); System.out.println("id:" + mapValue.get("ID") + ",username:" + mapValue.get("USERNAME") + ",password:"+ mapValue.get("PASSWORD") + ",address:" + mapValue.get("ADDRESS") + ",email:" + mapValue.get("EMAIL") + ",zipcode:" + mapValue.get("ZIPCODE")); } Map condition = new HashMap(); condition.put("id", 21); Map oneMap = session.selectMap("mybatis.testcurd.selectOneUserByMap", condition,"username"); Set<String> oneMapKeys = map.keySet(); for(String key:oneMapKeys){ Map mapValue = (Map) map.get(key); System.out.println("id:" + mapValue.get("ID") + ",username:" + mapValue.get("USERNAME") + ",password:"+ mapValue.get("PASSWORD") + ",address:" + mapValue.get("ADDRESS") + ",email:" + mapValue.get("EMAIL") + ",zipcode:" + mapValue.get("ZIPCODE")); } } } //使用map进行更新 @Test public void testUpdateUserByMap(){ Map map = new HashMap(); map.put("id",22); map.put("username", "李四"); if(session != null){ session.update("mybatis.testcurd.updateUserByMap", map); } } @Test public void testDeleteUserByMap(){ Map map = new HashMap(); map.put("id",22); if(session != null){ session.delete("mybatis.testcurd.deleteUserByMap",map); } } @After public void after(){ if(session != null){ session.commit();//session需要commit 否则无法尽心提交 session.close(); } }
4、mybatis的结构如下图所示:
相关文章推荐
- SQLite 入门教程四 增删改查 有讲究
- BootStrap实现带有增删改查功能的表格(DEMO详解)
- hibernate中的增删改查实现代码
- Android--SQLite(增,删,改,查)操作实例代码
- 浅析Mybatis 在CS程序中的应用
- sqlserver 增删改查一些不常用的小技巧
- PHP+MYSQL实现用户的增删改查
- 使用maven+eclipse搭建struts2开发环境
- maven中下载jar包源码和javadoc的命令介绍
- SpringMVC+MyBatis项目总结(一)
- SpringMVC+MyBatis项目总结(二)
- MyBatis返回结果不稳定
- MyBatis通过反射建立一个对象的过程。
- Maven学习笔记
- springMVC+spring+Mybatis
- Maven for Eclipse
- maven 使用 问题记录
- SpringMVC+mybatis+Spring框架整合+简单实现的demo
- Java Web--增删改查之一界面jsp的操作部分
- 《Maven权威指南》学习笔记四_创建一个简单的Maven项目