浏阳网站开发公司,微网站的建设模板有哪些,为什么sem的工资都不高,上海卫生人才网官网简单介绍
在之前的我们比较详细的介绍过MyBatis的配置信息的时候#xff0c;在SQL映射文件中说过我们可以直接将结果集映射到我们的POJO实体类中#xff0c;省去了我们自己处理查询结果集的时间和代码#xff0c;接下来我们就来演示将单条数据和多条数据映射到我们POJO实体…简单介绍
在之前的我们比较详细的介绍过MyBatis的配置信息的时候在SQL映射文件中说过我们可以直接将结果集映射到我们的POJO实体类中省去了我们自己处理查询结果集的时间和代码接下来我们就来演示将单条数据和多条数据映射到我们POJO实体类的情况
前期准备
MyBatis核心配置文件、 ?xml version1.0 encodingUTF-8 ?
!DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configuration!-- 第一个修改,在这里添加自己刚才写的数据库连接配置文件的文件名--properties resourceDatabaseConnectionProfile.properties/environments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLED!-- 第二个修改,将下面这些花括号里面的内容全都都加上一个mysql.的前缀--property namedriver value${mysql.driver}/property nameurl value${mysql.url}/property nameusername value${mysql.username}/property namepassword value${mysql.password}//dataSource/environment/environmentsmappersmapper resourcemappers/selectOne.xml//mappers
/configuration 数据表信息 create database mybatis;
use mybatis;
create table user(id int,name varchar(20),age int,gender varchar(3)
);
insert into user values (1,张三,12,男),(2,李四,12,女),(3,王五,18,男);POJO实体类注意这个实体类是放在一个包下面的 package com.mybites.mappers;public class user {private int id;private String name;private int age;private String gender;Overridepublic String toString() {return course{ id id , name name \ , age age , gender gender \ };}public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender gender;}public user(int id, String name, int age, String gender) {this.id id;this.name name;this.age age;this.gender gender;}public user() {}
} SQL语句映射文件 ?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespaceMappers
!-- 根据id查询单条数据--select idselectOne resultTypeuser parameterTypeintselect * from user where id #{id};/select
/mapper 将单条数据映射到POJO实体类
将前期准备工作完成之后我们就可以开始编写Java代码了我们可以现在test下面测试我们的代码 import com.mybatis.POJO.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.InputStream;public class doSomething {
// 使用单元测试Testpublic void selectOne() throws Exception{
// 以流的形式封装MyBatis核心配置文件InputStream stream Resources.getResourceAsStream(mybatis.xml);
// 解析核心配置文件并生成SqlSessionFactory对象SqlSessionFactory build new SqlSessionFactoryBuilder().build(stream);
// 生成持久化连接对象并操作数据库SqlSession sqlSession build.openSession();
// 使用方法操作数据库映射文件中的SQL语句第一个参数是SQL映射文件的唯一标识第二个参数是拼接在SQL语句中占位符的查询参数
// 这个过程会自动将查询结果集映射到POJO实体类所以这里的返回结果就是我们的实体类对象User u sqlSession.selectOne(Mappers.selectOne, 2);
// 输出查询结果System.out.println(u.toString());}
}可以看到在输出结果的阶段省去了我们自己编写查询结果集映射代码
将多条数据映射到POJO实体类
将多条语句映射到POJO时通过改变查询的方法和SQL映射文件即可 ?xml version1.0 encodingUTF-8 ?
!DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespaceMappers
!-- 根据id查询单条数据--select idselectOne resultTypeuser parameterTypeintselect * from user where id #{id};/select
!-- 查询所有的数据--select idselectAll resultTypeuserselect * from user;/select
/mapper Testpublic void selectAll() throws Exception {// 以流的形式封装MyBatis核心配置文件InputStream stream Resources.getResourceAsStream(mybatis.xml);
// 解析核心配置文件并生成SqlSessionFactory对象SqlSessionFactory build new SqlSessionFactoryBuilder().build(stream);
// 生成持久化连接对象并操作数据库SqlSession sqlSession build.openSession();
// 查询多条语句就是将多条结果封装金实体类之后再将多个实体类组合成一个数组的形式
// 在查询的时候,需要遍历数组然后再得到里面的每一个元素ListUser users sqlSession.selectList(Mappers.selectAll);for (User u : users){System.out.println(u.toString());}}
最终的目录结构和代码
目录结构 代码
import com.mybatis.POJO.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;
import java.io.InputStream;
import java.util.List;public class doSomething {
// 使用单元测试Testpublic void selectOne() throws Exception{
// 以流的形式封装MyBatis核心配置文件InputStream stream Resources.getResourceAsStream(mybatis.xml);
// 解析核心配置文件并生成SqlSessionFactory对象SqlSessionFactory build new SqlSessionFactoryBuilder().build(stream);
// 生成持久化连接对象并操作数据库SqlSession sqlSession build.openSession();
// 使用方法操作数据库映射文件中的SQL语句第一个参数是SQL映射文件的唯一标识第二个参数是拼接在SQL语句中占位符的查询参数
// 这个过程会自动将查询结果集映射到POJO实体类所以这里的返回结果就是我们的实体类对象User u sqlSession.selectOne(Mappers.selectOne, 2);
// 输出查询结果System.out.println(u.toString());}Testpublic void selectAll() throws Exception {// 以流的形式封装MyBatis核心配置文件InputStream stream Resources.getResourceAsStream(mybatis.xml);
// 解析核心配置文件并生成SqlSessionFactory对象SqlSessionFactory build new SqlSessionFactoryBuilder().build(stream);
// 生成持久化连接对象并操作数据库SqlSession sqlSession build.openSession();
// 查询多条语句就是将多条结果封装金实体类之后再将多个实体类组合成一个数组的形式
// 在查询的时候,需要遍历数组然后再得到里面的每一个元素ListUser users sqlSession.selectList(Mappers.selectAll);for (User u : users){System.out.println(u.toString());}}
}