一.mybatis入门
思路:1.导包,把mysql及mybatis放入lib中,add进行添加依赖
2.创建resources,放入database.properties文件及创建mybatis-config.xml文件
3.修改database.properties数据库参数及配置mybatis-config.xml文件信息
4.创建实体包,根据数据库的信息内容创建实体类
5.创建dao包,创建UserMapper.java接口类以及UserMapper.xml配置文件
6.创建util工具类,用于读取mybatis-config.xml文件并返回会话SqlSession,写成静态方法
7.测试类,通过静态方法获得会话SqlSession,使用该会话的方法再通过接口中的方法获得数据,返回一个集合
3
5
6
7
参考代码:
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>
<!-- 引入database.properties文件 -->
<properties resource="database.properties" />
<!-- 配置mybatis运行环境 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 获取数据库信息 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${user}" />
<property name="password" value="${pwd}" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 将UserMapper.xml加载配置文件中,路径从包到类,包含文件后缀名,前面用/隔开 -->
<mapper resource="com/dao/UserMapper.xml" />
</mappers>
</configuration>
UserMapper.java
public interface UserMapper {
//接口类,有两个方法
int count();
List<User> selectAll();
}
UserMapper.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="com.dao.UserMapper">
<!-- id代表方法名,必须跟接口方法名一致,resultType代表返回信息 -->
<select id="count" resultType="int">
select count(1) as count from user
</select>
<!-- com.entitiy.User 路径是从包到类,通过.形式填写,不包含后缀名 -->
<select id="selectAll" resultType="com.entitiy.User">
select * from user
</select>
</mapper>
UserMapperText.java
public class UtileMapperText {
public static SqlSession ffcx(){
SqlSession ss= null;
try {
//通过Resources获得配置(mybatis-config.xml)文件输入流
InputStream is = Resources
.getResourceAsStream("mybatis-config.xml");
//创建SqlSessionFactory工厂,通过工厂Builder().build(is)方法完全配置文件的读取
SqlSessionFactory factory = new SqlSessionFactoryBuilder()
.build(is);
//通过工厂打开Session,返回sqlSession
ss = factory.openSession();
} catch (Exception e) {
// TODO: handle exception
}
return ss;
}
}
实体类根据数据库类型进行创建
Test:
public class Test {
public static void main(String[] args) {
//通过工具类获取静态方法ffcx,返回sqlsession
SqlSession connent = UtileMapperText.ffcx();
//通过会话.getMapper(写入接口名称).接口的方法名(),返回集合list
List<User> li = connent.getMapper(UserMapper.class).selectAll();
//遍历一下获得的集合
for (User list:li) {
System.out.println(list.getUserNo());
}
}
}