如何基于mybatis框架查询数据库表数据并打印

网友投稿 451 2022-11-15


如何基于mybatis框架查询数据库表数据并打印

一、需求说明

使用mybatis框架查询数据库user表数据并打印到控制台上

二、数据库数据准备

-- 创建用户表

create table user (

id int primary key auto_increment,

username varchar(20) not null,

birthday date,

sex char(1) default '男',

address varchar(50)

);

-- 添加用户数据

insert into user values (null, '孙悟空','1980-10-24','男','花果山水帘洞');

insert into user values (null, '白骨精','1992-11-12','女','白虎岭白骨洞');

insert into user values (null, '猪八戒','1983-05-20','男','福临山云栈洞');

insert into user values (null, '蜘蛛精','1995-03-22','女','盤丝洞');

-- 查询用户数据

select * from user;

三、实现步骤

3.1 创建模块3

.2 导入Mybatis框架jar包

3.3 编写用户实体类:User

package com.vg.entity;

import java.util.Date;

public class User {

private int id;

private String username;

private Date birthday;

private String sex;

private String address;

//alt+insert快速生成getter/setter方法

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public Date getBirthday() {

return birthday;

}

public void setBirthday(Date birthday) {

this.birthday = birthday;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getAddress() {

return address;

}

public void setAddress(String address) {

this.address = address;

}

@Override

public String toString() {

return "User{" +

"id=" + id +

", username='" + username + '\'' +

", birthday=" + birthday +

", sex='" + sex + '\'' +

", address='" + address + '\'' +

'}';

}

}

3.4 编写dao接口:UserMapper

package com.vg.dao;

import com.vg.entity.User;

import java.util.List;

/**

* 数据访问层接口:对用户进行增删改查操作

* */

public interface UserMapper {

/**

* 查询所有用户

* */

List findAllUsers();

}

3.5 编写dao接口映射文件:UserMapper.xml

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

3.6 编写Mybatis主配置文件:sqlMapConfig.xml

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

3.7 编写测试类

package com.vg.test;

import org.junit.Test;

/**

* 测试类

*/

public class TestUserMapper {

/**

* 测试方法:查询所有学生

*/

@Test

public void testFindAllUsers(){

}

}

四、完善sqlMapConfig.xml

4.1 目标

完成mybatis主配置文件相关信息的配置:数据库环境信息配置,包括如下:

导入mybatis约束(复制约束信息)

数据库事务配置

数据库连接信息配置

连接池信息配置

4.2 sqlMapConfig.xml主配置文件

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

五、完善UserMapper.xml文件

5.1 目标

完成接口映射配置文件UserMapper.xml的编写:这个映射文件就相当于UserMapper接口实现类配置

5.2 UserMapper.xml接口映射文件

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from user

5.3 在sqlMapConfig.xml中加载接口映射配置文件

六、编写测试类运行

6.1 运行效果

6.2 实现步骤

1. 通过Resources类,加载sqlMapConfig.xml,得到文件输入流对象

2. 实例化会话工厂创建类SqlSessionFactoryBuilder

3. 通过会话工厂创建类,读取上面的输入流,得到会话工厂SqlSessionFactory类

4. 使用SqlSessionFactory对象,创建SqlSession对象

a) 它相当于JDBC中的Connection对象,提供了操作数据库的CRUD方法

b) 它提供了一个getMapper()方法,获取接口的实现对象。

5. 获取接口 UserMapper 实现类对象

6. 执行数据库的查询操作,输出用户信息

7. 关闭会话,释放资源。

6.3 测试类代码

package com.vg.test;

import com.vg.dao.UserMapper;

import com.vg.entity.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;

import java.util.List;

/**

* 测试类

*/

public class TestUserMapper {

/**

* 测试方法:查询所有学生

* SqlSessionFactoryBuilder=>SqlSessionFactory=>Sqlsession:相当于JDBC中的Connection对象

*/

@Test

public void testFindAllUsers() throws Exception{

//1. 通过Resources类,加载sqlMapConfig.xml,得到文件输入流对象

// Resources类作用:专门读取src目录下的资源文件

InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");

//2. 实例化会话工厂创建类SqlSessionFactoryBuilder

SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

//3. 通过会话工厂创建类,读取上面的输入流,得到会话工厂SqlSessionFactory类

SqlSessionFactory sqlSessionFactory = builder.build(in);

//4. 使用SqlSessionFactory对象,创建SqlSession对象

//a) 它相当于JDBC中的Connection对象,提供了操作数据库的CRUD方法

//b) 它提供了一个getMapper()方法,获取接口的实现对象。

SqlSession sqlSession = sqlSessionFactory.openSession();

//5. 获取接口 UserMapper 实现类对象

UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

System.out.println("userMapper = " +userMapper);

//6. 执行数据库的查询操作,输出用户信息

List userList = userMapper.findAllUsers();

for (User user : userList) {

System.out.println(user);

}

//7. 关闭会话,释放资源。

sqlSession.close();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:IDEA java出现无效的源发行版14解决方案
下一篇:Springboot 整合shiro实现权限控制的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~