1.环境搭建
创建一个maven父工程和子工程
创建数据库,表,以及封装数据库的javabean和操作数据库的dao接口
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee {
private Integer id;
private String empName;
private String email;
}
public interface EmployeeDao {
//根据员工id获取员工
public Employee getEmpByID();
}
2.导包
因为Log4j需要依赖一个classpath路径下的xml文件,需要导入一个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>
3.写配置
1.第一个配置文件:MyBatis的全局配置文件,知道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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!--配置连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/3306/mybatis_01"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
2.第二个数据库:编写每一个方法如何向数据库发送sql语句,如何执行。
<?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">
<!--名称空间:写接口的全类名,告诉Mybatis这个配置文件是实现哪个接口的-->
<mapper namespace="com.hh.dao.EmployeeDao">
<!--
用来定义一个查询操作
id:方法名相当于配置对某个方法的实现
resultType:指定方法运行后的返回值参数(查询操作必须指定的)
#{id}:代表取出传递过来的某个参数的值
-->
<select id="getEmpById" resultType="com.hh.bean.Employee">
select * from t_employee where id=#{id}
</select>
</mapper>
3.我们写的第二个配置文件,MyBatis是不知道的,需要在全局配置文件(第一个配置文件)中注册:
<!--引入我们自己编写的每一个接口的实现文件-->
<mappers>
<mapper resource="com/hh/dao/EmployeeDao.xml"/>
</mappers>
4.测试
1.根据全局配置文件创建一个SqlSessionFactory对象
//根据全局配置文件创建一个SqlSessionFactory
//SqlSessionFactory是SqlSession工厂,负责创建SqlSession对象
//SqlSession:sql会话(和数据库的一次会话)
String resource = "mybatis-config.xml";
InputStream inputStream =
Resources.getResourceAsStream(resource);
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlsessionFactory = builder.build(inputStream);
2.从SqlSessionFactory对象中获取SqlSession对象操作数据库
//获取和数据库的一次会话:getConnection()
SqlSession sqlSession = sqlsessionFactory.openSession();
//使用sqlSession操作数据库
EmployeeDao mapper = sqlSession.getMapper(EmployeeDao.class);
Employee employee = mapper.getEmpById(1);
System.out.println(employee);