Mybatis 学习
- 环境:
1.创建Maven项目,倒入Mybatis,mysql,juntis依赖 - mybatis项目:
1.阅读文档配置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>
<properties resource="db.properties"/>
<typeAliases>
<package name="com.study.pojo"/>
</typeAliases>
<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="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/study/mapper/UserMapper.xml"/>
</mappers>
</configuration>
2.创建CRUD操作的XML文件和CRUD方法接口,UserMapper.xml,UserMapper
3.UserMapper.xml与接口方法类UserMapper要同名
<?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.study.mapper.UserMapper">
<select id="selectUser" resultType="user">
select * from test;
</select>
<insert id="insert" parameterType="user">
insert into test values(#{id},#{age},#{name},#{username},#{password});
</insert>
<update id="update" parameterType="user">
update test set age=#{age},name = #{name}, username = #{username}, password = #{password} where id = #{id};
</update>
<delete id="delete" parameterType="user">
delete from test where id = #{id}
</delete>
</mapper>
4.在utils包下创建一个工具类MybatisUtils进行工厂化操作
package com.study.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.InputStream;
public class MybatisUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
try{
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (Exception e){
e.printStackTrace();
}finally {
}
}
public static SqlSession getSession(){
return sqlSessionFactory.openSession();
}
}
5.在写实际代码时,一定要记住关闭资源
6.在写增删改需要加上事务,commit