MyBatis中映射文件的输入映射为pojo包装类型
来源:互联网 发布:登陆淘宝显示网络崩溃 编辑:程序博客网 时间:2024/06/05 05:16
MyBatis中映射文件的输入映射为pojo包装类型
自定义pojo类(User.java)
package com.hl.myabtis.first.beas;import java.util.Date;public class User { private int id; private String username; private char sex; private Date birthday; private String address; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public char getSex() { return sex; } public void setSex(char sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getId() { return id; } public void setId(int id) { this.id = id; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address=" + address + "]"; }}
自定义pojo类的增强类(UserCustomer .java)
package com.hl.myabtis.first.beas;/** * 用户增强类 * @author 浪丶荡 * */public class UserCustomer extends User{ //可以扩展用户类}
用于综合查询的包装类(UserQueryVo .java)
package com.hl.myabtis.first.beas;/** * 查询用户包装类型 * @author 浪丶荡 * */public class UserQueryVo extends User{ //包装用户类增强类 private UserCustomer userCustomer; //还可以包装其他的(订但、商品等) public UserCustomer getUserCustomer() { return userCustomer; } public void setUserCustomer(UserCustomer userCustomer) { this.userCustomer = userCustomer; }}
Mapper接口(UserMapper.java)
package com.hl.mybatis.first.mapper;import java.util.List;import com.hl.myabtis.first.beas.User;import com.hl.myabtis.first.beas.UserCustomer;import com.hl.myabtis.first.beas.UserQueryVo;public interface UserMapper { //根据id查询用户信息 public User findUserById(int id) throws Exception; //添加用户信息 public void insertUser(User user); //根据id删除用户 public void deleteUser(int id); //根据用户姓名模糊查找 public List<User> findUserByName(String name); //用户信息的综合查询 public List<UserCustomer> fingUserList(UserQueryVo userQueryVo) throws Exception;}
mapper.xml映射文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- 对sql进行分开处理,隔离 --><mapper namespace="com.hl.mybatis.first.mapper.UserMapper"> <!-- 执行数据库的查询 ID用来标识次sql语句,称为Statement的ID #{}表示一个占位符 parameterType指定输入参数类型 id:接收参数名叫id,如果参数为简单类型,参数名随意 resultType:输出结果的类型,单条记录所映射的对象类。 --> <select id="findUserById" parameterType="int" resultType="user"> select * FROM user WHERE id = #{id} </select> <!--${value}表示sql拼接串 --> <select id="findUserByName" parameterType="String" resultType="user"> select * FROM user WHERE address LIKE '%${value}%' </select> <!-- 用户信息的综合查询 查询条件很复杂 --> <select id="fingUserList" parameterType="com.hl.myabtis.first.beas.UserQueryVo" resultType="com.hl.myabtis.first.beas.UserCustomer"> select * from user where user.sex=#{userCustomer.sex} or user.address like '$%{userCustomer.address}%' </select> <!-- 添加用户 SELECT_LAST_INSERT_ID()只适用于自增长情况 keyProperty:将查询到的结果设置到parameterType指定的属性 order:执行顺序,在插入后执行 resultType:结果类型 --> <insert id="insertUser" parameterType="user"> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> SELECT LAST_INSERT_ID() </selectKey> insert into user (username,birthday,sex,address) value(#{username},#{birthday},#{sex},#{address}) </insert> <!-- 删除 parameterType:参数类型 --> <delete id="deleteUser" parameterType="java.lang.Integer"> delete from user where id = #{value} </delete> <!-- 更新 需求:根据ID更新用户信息 parameterType:需要更新的用户信息 #{id}:从输入的user对象中获取ID属性,名称需要和属性名一致 --> <update id="updateUserByID" parameterType="user"> update user set username = #{username},birthday = #{birthday},sex = #{sex},address = #{address} where id = #{id} </update></mapper>
全局配置文件
<?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> <!-- 加载属性文件 --> <properties resource="db.properties" /> <!-- 全局配置 <settings> </settings> --> <!-- 别名 --> <typeAliases> <!-- 单个定义别名 <typeAlias type="com.hl.myabtis.first.beas.User" alias="user"/> --> <!-- 批量定义别名 指定包名,MyBatis会自动扫描包内类,自动定义别名,别名就是类名,首字母不区分大小写 --> <package name="com.hl.myabtis.first.beas"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> <!-- 加载映射文件 --> <mappers> <mapper resource="sqlmap/user.xml"/> <mapper class="com.hl.mybatis.first.mapper.UserMapper"/> </mappers></configuration>
db参数:
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/MyBatis?useUnicode=true&characterEncoding=UTF8jdbc.username=rootjdbc.password=123456
测试类:
@Test public void testfindUserList() throws Exception{ SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper usermapper = sqlSession.getMapper(UserMapper.class); //构建一个包装类 UserQueryVo userQueryVo = new UserQueryVo(); //构建一个增强类 UserCustomer userCustomer = new UserCustomer(); userCustomer.setAddress("明月"); userCustomer.setSex('1'); //包装类包装这增强类作为查询条件 userQueryVo.setUserCustomer(userCustomer); List<UserCustomer> userList = usermapper.fingUserList(userQueryVo); sqlSession.close(); for (UserCustomer user : userList) { System.out.println(user); } }
阅读全文
0 0
- MyBatis中映射文件的输入映射为pojo包装类型
- 【Mybatis框架】输入映射-pojo包装类型
- 【Mybatis框架】输入映射-pojo包装类型
- 【Mybatis框架】输入映射-pojo包装类型
- 【SpringMVC+mybatis】8.mybatis输入映射-pojo包装类型
- 【MyBatis】——输入映射传递pojo的包装对象
- Mybatis的输入映射
- Mybatis映射pojo包含pojo
- MyBatis中输入映射和输出映射
- MyBatis中映射文件的组成标签
- mybatis 映射文件中$ # 的区别
- MyBatis中SQL映射的XML文件
- Mybatis映射文件中属性的含义
- MyBatis中映射文件的记录
- mybatis的sql中不指定日期类型,会自动映射为sql中的datetime
- Mybatis输入映射parameterType与输出映射ResultMap是Map类型的解决方案
- MyBatis的XML映射文件、映射器
- Mybatis 输入映射 输出映射 高级映射
- 测绘师--摄影测量
- Python中单线程、多线程和多进程的效率对比实验
- Java File操作工具类
- 收藏的不是csdn 博客地址。
- H数
- MyBatis中映射文件的输入映射为pojo包装类型
- python-大智慧-ALF过滤指标
- 高级网络配置
- linux系统下mysql快速安装使用、远程访问及中文乱码问题解决
- Kotlin 实现Activity之间的跳转 和 布局控件的简单调用
- java获取json数组格式中的值
- tyvj P1519 博彩游戏
- 按先序打印二叉树叶子结点
- Java基础——LinkedHashSet源码分析