相关信息
- 使用的编译器-IDEA 2020
- 上一篇文章 mybatis学习日志(一)
- 本次内容是,编写方法读取数据库内容
具体操作
1.本次文件架构
- domain 里面用于存放针对于表的类
- DAO针对于domain里面的类实现的接口
- IUser对接口类的配置(DAO)
2.代码内容
class User
public class User implements Serializable {
private Integer id;
private String name;
private String birthday;
private String sex;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", birthday=" + birthday +
", sex='" + sex + '\'' +
'}';
}
}
- 这个里面的字段,需要跟mysql数据库里面的表User对应
- 这是一个可序列化类
接口 IUser
public interface IUser {
/**
* 查询表内所有元素
* @return
*/
List<User> findAll();
}
- 这个接口里面有一个findAll方法,用于查询表内所有内容
IUser.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="com.sari.DAO.IUser">
<!-- 配置查询所有 -->
<!-- 写下你的那个方法的对应功能 对应的是方法名 -->
<select id="findAll" resultType="com.sari.domain.User">
SELECT *
FROM User;
</select>
</mapper>
- 这是一个对IUser mapper配置文件,需要引入标识
- 在mapper标签下面,对接口内容进行定义,比如findAll是一个选择类型语句,用的是select标签,返回的类型是User类型(注意文件目录),里面内容是mysql语句
3请打开你的mysql服务器
我所使用的是phpts所带的mysql服务器,读者请自行视情况改变
我在mybatis01数据库下有一张User表
User表
表里面的内容
4.测试功能
测试函数,请在test文件夹下完成
mybatisTest
public class mybatisTest {
/**
* psmv快速建立入口
* @param args
*/
public static void main(String[] args) throws Exception {
//读取配置文件
InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
//创建SqlSessionFactory工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory=builder.build(in);
//使用工厂生产Session对象
SqlSession session=factory.openSession();
//使用Session创建DAO的对象
IUser userDao=session.getMapper(IUser.class);
//使用代理对象执行方法
List<User> users =userDao.findAll();
for(User user:users){
System.out.println(user);
}
//释放资源
session.close();
in.close();
}
}
- 相关疑惑后续解决
结果
成功输出数据库内容
代码仓库
暂无