简单的mybatis程序
步骤*
- 创建mybatis配置文件:SqlMapConfig.xml;
内容包括
具体可见Mybatis的配置文件和映射文件详解 - 根据数据库创建对应的pojo实体对象User.java;
- 创建定义数据库操作的sql映射文件UserMapper.xml,并在sqlMapConfig.xml文件声明;
- 可创建方法接口UserMapper.java;
- 可创建工具类DBUtil.java,提供方法:创建SqlSessionFactory对象,利用工厂创建sqlsession对象;
- 创建测试类TestMybatis.java,(利用5)实例化session,找对应UserMapper.xml,读取该映射文件,,并(利用4)执行数据库操作方法,把查询结果封装到pojo对象中;
*参考:原理
代码
目录
测试文件与mapper文件路径需相同(在同名包内)
- SqlMapConfig.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>
<!-- 全局配置 环境 事物 数据源 属性 插件 工厂 -->
<environments default="deploy">
<environment id="deploy">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/test?useSSL=false&charactorEncoding=utf8&serverTimezone=UTC" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<!-- 映射 -->
<mappers>
<!-- mapper路径不能用点 -->
<mapper resource="mybatis/UserMapper.xml"/>
</mappers>
</configuration>
- pojo实体对象User.java
方法:getter,setter,tostring
package mybatis;
public class User {
private String name;
private String pass;
private String type;
@Override
public String toString() {
return "User [name=" + name + ", pass=" + pass + ", type=" + type + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
- sql映射文件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">
<!-- 文件头与config不同 这里是mapper -->
<!-- 配置映射文件命名空间(java包) -->
<mapper namespace="mybatis.UserMapper">
<select id="find" resultType="mybatis.User">
select * from yonghu
</select>
</mapper>
- 测试类TestMybatis.java
方法:
(1)创建工厂,用builder类创建:
new SqlSessionFactoryBuilder().build(is);
(2)builder类创建工厂需要输入流:
InputStream is = Resources.getResourceAsStream(resource);
(3)利用工厂创建sqlsession对象
factory.openSession();
(4)数据库查询
List《User》 userList = session.selectList(statement);
package mybatis;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
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 org.junit.Test;
public class TestMybatis {
@Test
public void find() throws IOException {
// 1.创建sqlsessionfactory,加载核心配置文件
String resource = "SqlMapConfig.xml";// 只有文件在根目录,才能直接写文件名
InputStream is = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);// 创建工厂对象,参数用输入流格式
// 2.利用工厂创建sqlsession对象,读取某个映射文件来执行
SqlSession session = factory.openSession();
String statement = "mybatis.UserMapper.find";// 指向映射文件,映射文件需要pojo
List<User> userList = session.selectList(statement);// ORM 对象和数据库表映射工具,持久化工具mybatis
for (User u : userList) {
System.out.println(u);
}
}
}