目录
2.3创建MyBatis核心配置文件(mybatis-config.xml)
一、创建项目
二、配置环境
2.1引入依赖(pom.xml)
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.18</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
</dependencies>
2.2在resources下创建db.properties
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=root
mysql.password=root 等号后面为数据库登陆密码
2.3创建MyBatis核心配置文件(mybatis-config.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>
<package name="com.biem.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>
<!-- mapping文件路径配置 -->
<mappers>
<package name="com.biem.mapper"/>
</mappers>
</configuration>
2.4添加log4j文件(log4j.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<param name="Encoding" value="UTF-8"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n"/>
</layout>
</appender>
<logger name="java.sql">
<level value="debug"/>
</logger>
<logger name="org.apache.ibatis">
<level value="info"/>
</logger>
<root>
<level value="debug"/>
<appender-ref ref="STDOUT"/>
</root>
</log4j:configuration>
三、创建数据库
四、创建Employee实体类
4.1创建POJO实体
添加 Employee类
Employee内容:
package org.example.pojo;
public class Employee {
private int id;
private String name;
private int age;
private String position;
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 getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
@Override
public String toString() {
return "Employee{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", position='" + position + '\'' +
'}';
}
}
4.2创建Util实体
创建class文件
具体内容:
package org.example.util;
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 java.io.InputStream;
public class MyBatisUtil {
public static SqlSession getSqlSession(){
SqlSession session=null;
try{
InputStream is =Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
session = sqlSessionFactory.openSession(true);
} catch (Exception e){
e.printStackTrace();
}
return session;
}
}
五、创建接口类
5.1创建mapper实体
5.2创建Employee接口文件
具体内容:
package org.example.mapper;
import org.example.pojo.Employee;
public interface EmployeeMapper {
/**
* 根据id查询员工信息
*/
public Employee findEmpById(int id);
/**
* 新增员工信息
*/
public int insertEmp(Employee employee);
/**
* 根据id修改员工信息
*/
public int updateEmpById(Employee employee);
/**
*
* 根据id删除员工信息
*/
public int deleteEmpById(int id);
}
六、创建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为映射的根节点-->
<!-- mapper为映射的根节点,namespace指定Dao接口的完整类名
mybatis会依据这个接口动态创建一个实现类去实现这个接口,
而这个实现类是一个Mapper对象-->
<mapper namespace="com.biem.mapper.EmployeeMapper">
<!--id ="接口中的方法名"
parameterType="传入的参数类型"
resultType = "返回实体类对象,使用包.类名"-->
<!--public Employee findEmpById(int id);-->
<select id="findEmpById" parameterType="int" resultType="Employee">
select * from employee where id = #{id}
</select>
<!--public int insertEmp(Employee employee);-->
<insert id="insertEmp" parameterType="Employee">
insert into employee values(null, #{name}, #{age}, #{position});
</insert>
<!--public int updateEmpById(Employee employee);-->
<update id="updateEmpById" parameterType="employee">
update employee set name=#{name}, age=#{age}, position = #{position} where id = #{id}
</update>
<!--public int deleteEmpById(int id);-->
<delete id="deleteEmpById" parameterType="int">
delete from employee where id=#{id}
</delete>
</mapper>
七、创建测试类
具体内容:
package org.example.test;
import org.example.mapper.EmployeeMapper;
import org.example.pojo.Employee;
import org.example.util.MyBatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
public class TestEmp {
@Test
public void testFindEmpById(){
SqlSession session = MyBatisUtil.getSqlSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
Employee emp = mapper.findEmpById(2);
System.out.println("emp = " + emp);
}
@Test
public void testInsertEmp(){
SqlSession session = MyBatisUtil.getSqlSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
Employee emp = new Employee();
emp.setName("小米");
emp.setAge(24);
emp.setPosition("员工");
int result = mapper.insertEmp(emp);
}
@Test
public void testUpdateEmp(){
SqlSession session = MyBatisUtil.getSqlSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
Employee emp = new Employee();
emp.setId(4);
emp.setName("小明");
emp.setAge(36);
emp.setPosition("经理");
int result = mapper.updateEmpById(emp);
}
@Test
public void testDeleteEmpById(){
SqlSession session = MyBatisUtil.getSqlSession();
EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
int result = mapper.deleteEmpById(5);
}
}