这是一个简单的Mybatis的配置。
怕自己忘了,写个文章记录一下。其中要是有错,欢迎大家指正。
项目结构如下:
在pom.xm中添加依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
</dependencies>
SqlSessionFactoryUtil中的配置:
package com.iss.util;
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.InputStream;
public class SqlSessionFactoryUtil {
private static SqlSessionFactory sqlSessionFactory;
public static SqlSessionFactory getSqlSessionFactory( ) {
if (sqlSessionFactory == null) {
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream("mybatis-config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder( ).build(inputStream);
} catch (Exception e) {
e.printStackTrace( );
}
}
return sqlSessionFactory;
}
public static SqlSession openSession(boolean commit) {
return getSqlSessionFactory( ).openSession(commit);
}
}
在resources中的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>
<!--jdbc.properties是数据库登录信息的文本-->
<properties resource="jdbc.properties" />
<!--给user类定义别名,在UserMapper.xml中书写类型的时候比较方便-->
<typeAliases>
<typeAlias alias="user" type="com.iss.pojo.user" />
</typeAliases>
<!--配置环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<!--核心映射文件的路径,在其中填写sql语句-->
<mappers>
<mapper resource="mappers/UserMapper.xml" />
</mappers>
</configuration>
jdbc.properties的配置:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=12345
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">
<!--namespace所对应的路径是接口的路径,该属性要求是唯一的-->
<mapper namespace="com.iss.dao.userDao">
<!--搜索功能-->
<select id="findUserById" parameterType="int" resultType="user">
select * from haunters where id=#{id}
</select>
</mapper>
sql语句是写在这个文件中的。
测试类的配置:
import com.iss.pojo.user;
import com.iss.util.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
public class MyTest {
@Test
public void selectOne(){
SqlSession sqlSession= SqlSessionFactoryUtil.openSession(true);
String statement="com.iss.dao.userDao.findUserById";
int id=1;
user user=sqlSession.selectOne(statement,id);
if (user !=null){
System.out.println(user);
}else {
System.out.println("查询出错了。");
}
}
}
其中你的user类中的各个数据的数据类型必须和Mybatis数据库中表的数据类型一一对应。