一、一般增删查改操作
数据映射文件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="UserMapper"> <!-- select 语句,未传参,返回int值 。 --> <select id="countAll" resultType="java.lang.Integer"> <![CDATA[ select count(*) from T_TEST_USER ]]> </select> <!-- select 语句,传参一个,返回User对象 。注:select id as id,name as name,pwd as pwd 的as后面的名称要与User类中属性名称要一一对应 --> <select id="getUserByName" parameterType="String" resultType="com.hsinghsu.testSSI.model.User"> select id as id,name as name,pwd as pwd from T_TEST_USER WHERE NAME = #{name} </select> <!-- select 语句,传参多个,返回User对象。注:此时select * 语句中对应的表的列名要与User类中属性名称要一一对应 --> <select id="getUserByNameAndAge" parameterType="Map" resultType="com.hsinghsu.testSSI.model.User"> select * from T_TEST_USER WHERE NAME = #{name} and AGE = #{age} </select> <!-- select 语句,传参一个,返回User对象。 --> <select id="getUserByAge" parameterType="String" resultType="com.hsinghsu.testSSI.model.User"> select * from T_TEST_USER WHERE AGE = #{age} </select> <!-- select 语句,传参一个,返回HashMap类型。 --> <select id="getUserByPwd" parameterType="String" resultType="Map"> select * from T_TEST_USER WHERE PWD = #{pwd} </select> <!-- select 语句,传参一个,返回HashMap类型。 --> <select id="getUserBySex" parameterType="String" resultType="Map"> select * from T_TEST_USER WHERE SEX = #{sex} </select> <insert id="insertUser" parameterType="com.hsinghsu.testSSI.model.User"> insert into T_TEST_USER(ID,NAME,PWD,AGE,SEX) values(#{id},#{name},#{pwd},#{age},#{sex}) </insert> <update id="updateUser" parameterType="com.hsinghsu.testSSI.model.User"> UPDATE T_TEST_USER SET NAME = #{name}, PWD = #{pwd}, AGE = #{age}, SEX = #{sex} WHERE ID = #{id} </update> <delete id="deleteUserById" parameterType="int"> delete from T_TEST_USER where ID = #{id} </delete> </mapper>执行文件UserDaoImpl.java代码如下:
package com.hsinghsu.testSSI.dao.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.mybatis.spring.support.SqlSessionDaoSupport; import org.springframework.stereotype.Repository; import com.hsinghsu.testSSI.dao.UserDao; import com.hsinghsu.testSSI.model.User; import com.hsinghsu.testSSI.util.SQLAdapter; @Repository(value = "userDao") public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao { @Override public User getUserByName(String name) { User user = new User(); // select语句,传入一个参数,返回User对象 ------------------------------------------------------------------------- int count = (Integer) getSqlSession().selectOne("UserMapper.countAll");// select语句,未传入参数,返回int值 user = getSqlSession().selectOne("UserMapper.getUserByName", name);// select语句,传入一个参数,返回User对象 //select语句,传入两个参数,返回User对象 -------------------------------------------------------------------------- User usr = new User(); Map<String, String> map = new HashMap<String, String>(); map.put("name", "hsing"); map.put("age", "12"); usr = getSqlSession().selectOne("UserMapper.getUserByNameAndAge", map);// select语句,传入两个参数,返回User对象 //select语句,传入一个参数,返回List类型 -------------------------------------------------------------------------- List<User> userList = new ArrayList<User>(); userList = getSqlSession().selectList("UserMapper.getUserByAge", "12");// select语句,传入一个参数,返回List类型 for (User u : userList) { System.out.println("--u--name:" + u.getName() + " pwd:" + u.getPwd()); } //select语句,传入一个参数,返回HashMap类型 ----------------------------------------------------------------------- HashMap<String, Object> userMap = (HashMap<String, Object>) getSqlSession().selectOne("UserMapper.getUserByPwd", "gg");// select语句,传入一个参数,返回HashMap类型 if (userMap != null) { System.out.println(userMap.toString() + "--m--name:" + userMap.get("NAME") + " pwd:" + userMap.get("PWD"));// 注:map的key为数据表的列,区分大小写 } else { System.out.println("userMap is null"); } //select语句,传入一个参数,返回List<HashMap>类型 ----------------------------------------------------------------- List<HashMap<String, Object>> userMapList = new ArrayList<HashMap<String, Object>>(); userMapList = getSqlSession().selectList("UserMapper.getUserBySex", "0");// select语句,传入一个参数,返回List<HashMap>类型 for (HashMap<String, Object> umap : userMapList) { System.out.println(umap.toString() + "--map--name:" + umap.get("NAME") + " pwd:" + umap.get("PWD"));// 注:map的key为数据表的列,区分大小写 } //insert语句,传入一个对象,成功返回1 ------------------------------------------------------------------------------------- User oneUser = new User(); oneUser.setId(Long.parseLong("6")); oneUser.setName("go07"); oneUser.setPwd("pesd07"); oneUser.setAge(Long.parseLong("25")); oneUser.setSex(Long.parseLong("1")); int result = getSqlSession().insert("UserMapper.insertUser",oneUser);//insert语句,传入一个对象 System.out.println("insert result:"+result); //update语句,传入一个对象,成功返回1 ------------------------------------------------------------------------------------- User oneUser2 = new User(); oneUser2.setId(Long.parseLong("6")); oneUser2.setName("go07--"); oneUser2.setPwd("pesd07--"); oneUser2.setAge(Long.parseLong("26")); oneUser2.setSex(Long.parseLong("0")); int updateResult = getSqlSession().update("UserMapper.updateUser",oneUser2);//insert语句,传入一个对象 System.out.println("update result:"+updateResult); //delete语句,传入一个值,成功返回1 ------------------------------------------------------------------------------------- int result3 = getSqlSession().delete("UserMapper.deleteUserById",7);//delete语句,传入一个参数 System.out.println("delete result:"+result3); return user; } }二、直接执行SQL语句
package com.hsinghsu.testSSI.util; public class SQLAdapter { String sql; public SQLAdapter(String sql) { this.sql = sql; } public String getSql() { return sql; } public void setSql(String sql) { this.sql = sql; } }在映射文件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="UserMapper"> <select id="queryBySql" parameterType="com.hsinghsu.testSSI.util.SQLAdapter" resultType="Map"> ${sql} </select> <insert id="insertBySql" parameterType="com.hsinghsu.testSSI.util.SQLAdapter"> ${sql} </insert> <update id="updateBySql" parameterType="com.hsinghsu.testSSI.util.SQLAdapter"> ${sql} </update> <delete id="deleteBySql" parameterType="com.hsinghsu.testSSI.util.SQLAdapter"> ${sql} </delete> </mapper>在实现类中UserDaoImpl.java代码如下:
package com.hsinghsu.testSSI.dao.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.mybatis.spring.support.SqlSessionDaoSupport; import org.springframework.stereotype.Repository; import com.hsinghsu.testSSI.dao.UserDao; import com.hsinghsu.testSSI.model.User; import com.hsinghsu.testSSI.util.SQLAdapter; @Repository(value = "userDao") public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao { @Override public User getUserByName(String name) { //=====================================================直接执行sql语句========================================================== //select语句 直接执行select sql语句 --------------------------------------------------------------------------- String selectSql = "select ID,NAME,PWD,AGE,SEX from T_TEST_USER WHERE SEX = 1"; SQLAdapter selectSqlAdapter = new SQLAdapter(selectSql); List<HashMap<String, Object>> userMapList2 = new ArrayList<HashMap<String, Object>>(); userMapList2 = getSqlSession().selectList("UserMapper.queryBySql", selectSqlAdapter);// select语句,传入一个参数,返回List<HashMap>类型 for (HashMap<String, Object> umap2 : userMapList2) { System.out.println(umap2.toString() + "--map2--name:" + umap2.get("NAME") + " pwd:" + umap2.get("PWD"));// 注:map的key为数据表的列,区分大小写 } //insert语句 直接执行insert sql语句 --------------------------------------------------------------------------- String insertSql = "insert into T_TEST_USER(ID,NAME,PWD,AGE,SEX) values(7,'gogo08','gogopwd08',24,1)"; SQLAdapter insertSqlAdapter = new SQLAdapter(insertSql); int result2 = getSqlSession().insert("UserMapper.insertBySql",insertSqlAdapter); System.out.println("insert result2:"+result2); //update语句 直接执行update sql语句 --------------------------------------------------------------------------- String updateSql = "UPDATE T_TEST_USER SET NAME = 'GSS00', PWD = 'GG007', AGE = 24, SEX = 1 WHERE ID = 6"; SQLAdapter updateSqlAdapter = new SQLAdapter(updateSql); int updateSqlResult = getSqlSession().update("UserMapper.updateBySql",updateSqlAdapter); System.out.println("updateSqlResult result:"+updateSqlResult); //delete语句 直接执行delete sql语句 --------------------------------------------------------------------------- String deleteSql = "delete from T_TEST_USER where ID = 5"; SQLAdapter deleteSqlAdapter = new SQLAdapter(deleteSql); int deleteSqlResult = getSqlSession().delete("UserMapper.deleteBySql",deleteSqlAdapter); System.out.println("deleteSqlResult result:"+deleteSqlResult); //============================================================================================================================= return null; } }
注:struts、spring、mybatis配置详见http://blog.csdn.net/xumengxing/article/details/8728331