一 利用MyBatis技术查询teacher表中的数据。
- 在MySQL数据库中,创建一个名为mybatis的数据库,在此数据库中创建一个teacher表,同时预先插入几条数据。如图所示:
2、创建MyBaitsDemo1项目,编写程序。完成如下操作:
(1)查询tno=“121002”的客户的记录;
(2)查询全部教师记录;
(3)查询姓周的教师记录;
MyBatis环境搭建的基本步骤:
- 创建工程
- 引入相关依赖(pom.xml)
- 创建数据库(mybatis)
- 创建数据库连接信息配置文件(db.properties)
- 创建MyBatis核心配置文件(MybatisConfig.xml)
1.创建项目
我这里是选择Maven框架来搭建环境,点击下一步之后,选择文件的名称
然后创建MyBatis项目目录
2.引入相关依赖(pom.xml)
在pom.xml中导入mysql驱动包、junit测试包、mybatis的核心包等相关依赖(自动导入)
<dependencies>
<dependency>
<!--mybatis的核心包-->
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<!--MySQL驱动包-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
<scope>test</scope>
</dependency>
<dependency>
<!--JUnit测试包-->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<!--将项目中src/main/java目录下的XML文件编译进classes文件夹-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
3.创建数据库(mydatabase)
Navicat for MySQL创建一个名称为mydatabase的数据库
4.创建数据库连接信息配置文件(db.properties)
数据库名称和数据库密码需要填写自己的
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC&\characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=123
5.创建MyBatis核心配置文件(mybatis-config.xml)(我的是MybatisConfig.xml)
注意一下这些的路径,都需要是自己的
<?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"/>
<typeAliases>
<!--自动给pojo包下的实体类以首字母小写的类名作别名-->
<package name="pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!--数据库连接相关配置,db.properties文件中的内容-->
<dataSource type="POOLED">
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<!--引入映射文件-->
<mapper resource="Mapper/TeacherMapper.xml"/>
</mappers>
</configuration>
6.创建pojo实体(Teacher.java)
在src/main/java目录下创建pojo包,创建用来接收映射文件操作反馈的实体类Teacher:
public class Teacher {
private Integer Tno;
private String Tname;
private String Titles;
private String phone;
public Teacher(){}
public Teacher(Integer tno, String tname, String titles, String phone) {
Tno = tno;
Tname = tname;
Titles = titles;
this.phone = phone;
}
public Integer getTno() {
return Tno;
}
public void setTno(Integer tno) {
Tno = tno;
}
public String getTname() {
return Tname;
}
public void setTname(String tname) {
Tname = tname;
}
public String getTitles() {
return Titles;
}
public void setTitles(String titles) {
Titles = titles;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "Teacher{" +
"Tno=" + Tno +
", Tname='" + Tname + '\'' +
", Titles='" + Titles + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
注意,实体类中的属性需要和数据库表中的属性名称相同,我这里是Tno和TNO,这个应该是查询的时候自动匹配的,(应该不区分大小写),如果实体类的是No和数据库的表中的TNO不同,在测试类中返回的Teacherd的No会是NULL。
7.创建映射文件
在src/main/resources目录下创建一个mapper文件夹,在该文件夹下创建TeacherMapper.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="pojo.Teacher">
<!--查询所有老师信息-->
<select id="findAll" resultType="pojo.Teacher">
select * from teacher
</select>
<!--接口中的方法名为findByTNO,id对应的是传入的参数,
parameterType传入参数类型为整型,resultType是映射返回的类型-->
<select id="findByTNO" parameterType="int" resultType="pojo.Teacher">
select * from teacher where TNO = #{id}
</select>
<select id="findZhou" parameterType="string" resultType="pojo.Teacher">
select * from teacher where TNAME like concat('%',#{value},'%')
</select>
</mapper>
第一个查询所有教师的信息,第二个是查询测试类传入id老师的信息,第三个是传入一个字符串,通过concat拼接来查询有关于"周"(例子)的老师的信息。
8.编写测试类(UserTest)
在src/main/java目录下的包下建Test包在该包下创建TeacherTest测试类
import org.junit.Test;
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 pojo.Teacher;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class Teachertest {
@Test
public void teacherFindByTest(){
String resources="MybatisConfig.xml";
InputStream is=null;
try{
is=Resources.getResourceAsStream(resources);
}catch (IOException e){
e.printStackTrace();
}
SqlSessionFactory sqlMapper=new SqlSessionFactoryBuilder().build(is);
SqlSession session=sqlMapper.openSession();
Teacher teacher=session.selectOne("pojo.Teacher.findByTNO",121002); //查询tno=“121002”的客户的记录;
System.out.println("查询tno=“121002”的客户的记录:");
System.out.println(teacher);
List<Object> list=session.selectList("pojo.Teacher.findAll"); //查询全部教师记录;
System.out.println("查询全部教师记录:");
for (Object o : list) {
System.out.println(o.toString());
}
System.out.println("查询姓周的教师记录:");
List<Object> findZhou = session.selectList("pojo.Teacher.findZhou","周"); //查询姓周的教师记录;
for (Object o : findZhou) {
System.out.println(o.toString());
}
session.close();
}
}
运行结果
以上就是我对于搭建Mybatis环境的实验的全部学习过程,主要参考的是这个博主的内容来完成的,记录一下我的学习过程,看原稿请走MyBatis 环境搭建 IDEA_idea搭建mybatis环境_Fan@SONG的博客-CSDN博客
欢迎大家一起讨论