Mybatis 学习
- 环境:
1.创建Maven项目,倒入Mybatis,mysql,juntis依赖 - mybatis项目:
1.阅读文档配置mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//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
