赞
赏
使用 MyBatis 框架访问数据库,查询数据库中数据。
使用 MyBatis 框架访问数据库,查询学生表中的记录。
log4j.properties
日志配置文件。百度云网盘:
链接:https://pan.baidu.com/s/1G9jV_JxIGJDcJO8vVHRw_Q
提取码:51g6
项目结构

具体实现
数据库代码:
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`sex` tinyint(1) DEFAULT '1',
`birthday` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
INSERT INTO `student`(`id`,`name`,`sex`,`birthday`) VALUES (1,'张三',1,'1997-10-14'),(2,'李四',1,'1998-10-10');
运行 SQL 语句,表中数据如下:

持久层接口 (StudentMapper):
package net.haicoder.dao;
import net.haicoder.entity.Student;
import java.util.List;
public interface StudentMapper {
List<Student> findAllStus();
}
持久层映射文件 (StudentMapper.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="net.haicoder.dao.StudentMapper">
<select id="findAllStus" resultType="net.haicoder.entity.Student">
select * from `student`
</select>
</mapper>
持久层接口与映射文件关系如下图:

MyBatis 核心配置文件:
<?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>
<settings>
<!--在控制台显示SQL语句-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--定义实体类别名-->
<typeAliases>
<package name="net.haicoder.entity"/>
</typeAliases>
<environments default="default">
<!--环境变量-->
<environment id="default">
<!--事务管理器-->
<transactionManager type="JDBC"/>
<!--数据源-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/haicoder_mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--加载其它映射文件-->
<mappers>
<package name="net.haicoder.dao"/>
</mappers>
</configuration>
log4j 配置文件:
### 设置Logger输出级别和输出目的地 ###
log4j.rootLogger=debug, stdout
### 把日志信息输出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
实体类:
package net.haicoder.entity;
import java.sql.Date;
public class Student {
private int id;
private String name;
private Double sex;
private Date birthday;
public Student() {
}
public Student(int id, String name, Double sex, Date birthday) {
this.id = id;
this.name = name;
this.sex = sex;
this.birthday = birthday;
}
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 Double getSex() {
return sex;
}
public void setSex(Double sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", sex=" + sex +
", birthday=" + birthday +
'}';
}
}
测试类:
public class TestStudent {
@Test
public void findAllStu() throws IOException {
// 获取核心配置文件
InputStream inputStream = Resources.getResourceAsStream("sqlMapConfig.xml");
// 创建工厂建造类
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
// 创建工厂类
SqlSessionFactory factory = builder.build(inputStream);
// 创建会话
SqlSession session = factory.openSession();
// 获取接口对象
StudentMapper mapper = session.getMapper(StudentMapper.class);
// 查询所有学生信息
List<Student> allStus = mapper.findAllStus();
// 打印结果
allStus.forEach(System.out::println);
// 释放资源,关闭会话即可
session.close();
}
}
运行结果,如下图:

总结
使用 MyBatis 框架访问数据库,查询学生表中的记录。(注意:本案例需要提前创建数据库 haicoder_jdbc
)。