文章目录
环境搭建
package com.jh.bean;
public class Employee {
private Integer id;
private String empName;
private String email;
private String gender;
package com.jh.dao;
import com.jh.bean.Employee;
public interface EmployeeDao {
//按照员工id查询员工
public Employee getEmpByid(Integer id);
}
导包
写配置
全局配置文件
指导mybatis如何正确运行,比如,连接向哪个数据库
<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"/>
<property name="username" value="root"/>
<property name="password" value="12345"/>
</dataSource>
</environment>
</environments>
dao接口的实现文件
编写每个方法都是如何向数据库发送sql语句的,如何执行。。。
<!-- namespace,名称空间:写接口的全类名,相当于告诉Mybatis这个配置文件是实现哪个接口的 -->
<mapper namespace="com.jh.dao.EmployeeDao">
<!-- public Employee getEmpByid(Integer id); -->
<!-- select,用来定义一个查询操作
id:方法名,相当于这个配置是对某个方法的实现
resultType:指定方法运行后的返回值类型(查询操作必须指定的)
#{属性名}:代表取出传递过来的某个参数的值
-->
<select id="getEmpByid" resultType="com.jh.bean.Employee">
select * from t_employee where id = #{id}
</select>
</mapper>
我们写的dao接口的实现文件,mybatis默认是不知道的,需要在全局配置文件中注册
<!-- 引入自己编写的每一个接口的实现文件 -->
<mappers>
<!--resource 表示从类路径下找资源 -->
<mapper resource="EmployeeDao.xml"/>
</mappers>
注意:
测试
@Test
public void test() throws IOException{
/*1.根据全局配置文件创建出一个sqlSessionFactory
* sqlSessionFactory:是sqlSession工厂,负责创建sqlSession对象;
* sqlSession:sql会话(和数据库的一次会话)
*/
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//4.调用之前的方法
Employee employee;
//2.获取和数据库的一次会话
SqlSession openSession = sqlSessionFactory.openSession();
try {
//3.使用sqlSession操作数据库,获取dao接口的实现
EmployeeDao employeeDao = openSession.getMapper(EmployeeDao.class);
employee = employeeDao.getEmpByid(1);
} finally{
openSession.close();
}
System.out.println(employee);
}