0
点赞
收藏
分享

微信扫一扫

Java 之mybatis简单使用与配置

中间件小哥 2022-06-20 阅读 67

一、基本配置

在线文档:​​https://mybatis.org/mybatis-3/zh/index.html​​

1、下载: ​​https://github.com/mybatis/mybatis-3/releases​​

Java 之mybatis简单使用与配置_apache

2、将mybatis-3.4.3.jar和lib下的jar包导入项目

3、创建 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>

<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/jrbac?characterEncoding=utf-8&useSSL=false"/>
<property name="username" value="jrbac"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>

<!-- 将我们写好的Sql映射文件,一定要注册到全局配置文件中。-->
<mappers>
<mapper resource="com/mapper/adminMapper.xml" />
</mappers>

</configuration>

4、创建Sql映射文件、实体对象Admin,如:adminMapper.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.admin">
<!--
namespace, 名称空间。
id, 唯一标识,同Spring的Bean标签id一样。
resultType: 返回值类型。我这里期望他给我返回一个员工对象。
-->

<select id="selectAdmin" resultType="com.entity.Admin">
select * from j_admin
</select>

</mapper>

二、示例

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 com.entity.Admin;

public class Mybatis {
public Mybatis() throws IOException {
String resource = "mybatis-config.xml";
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = build.openSession();

List<Admin> list = sqlSession.selectList("selectAdmin");
for(Admin i : list){
System.out.println(i);
}

sqlSession.close();
resourceAsStream.close();
}
}

 三、mybatis工具类

package com.utils;

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.IOException;
import java.io.InputStream;

/**
* @author 25754
*/
public class MyBatisUntil {
//封装会话工厂
private static SqlSessionFactory Factory;
/**在进行对象的跨层传递的时候,使用ThreadLocal可以避免多次传递,打破层次间的约束
*/
private static ThreadLocal<SqlSession> local = new ThreadLocal<SqlSession>();

static {
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
Factory = sqlSessionFactoryBuilder.build(is);

} catch (
IOException e)

{
e.printStackTrace();
}
}
//封装factory方法
public static SqlSessionFactory getFactory(){
return Factory;
}

//封装sqlSession会话
public static SqlSession getSqlSession(boolean IsAutoComiit) {
SqlSession sqlSession = local.get();
if (sqlSession == null) {
sqlSession = Factory.openSession(IsAutoComiit);
local.set(sqlSession);
}
return sqlSession;
}

//使用泛型封装getMapper
public static <T extends Object> T getMapper(Class<T> c) {
SqlSession sqlSession = getSqlSession(true);
return sqlSession.getMapper(c);
}
}

 



举报

相关推荐

0 条评论