映射文件:
<?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="com.bjsxt.mapper.UserMapper":命名空间,权限定路径 -->
<mapper namespace="com.bjsxt.mapper.UserMapper">
<!--新增 -->
<insert id="insertUser" parameterType="user">
insert into t_user values(default,#{username},#{password})
</insert>
<!--修改 -->
<insert id="updatetUser" parameterType="user">
update t_user set username=#{username},password=#{password} where id=#{id}
</insert>
<!--删除 -->
<insert id="deleteUser" parameterType="int">
delete from t_user where id=#{0}
</insert>
</mapper>
核心配置文件:
<?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文件 -->
<properties resource="db.properties" />
<settings>
<!-- 设置mybatis使用log4j支持 -->
<setting name="logImpl" value="LOG4J"/>
</settings>
<!-- 设置别名 -->
<typeAliases >
<!--自己设置别名 -->
<!-- <typeAlias type="com.bjsxt.pojo.User" alias="u"/> -->
<!-- 直接写全限定路径,别名为类名且不区分大小写,最常用 -->
<!-- <typeAlias type="com.bjsxt.pojo.User"/> -->
<!-- 只写包名,别名为类名且这个包下的所有类的别名都是类名 -->
<package name="com.bjsxt.pojo"/>
</typeAliases>
<environments default="dev"> <!-- 指定哪一个环境 -->
<environment id="dev"> <!-- 配置开发环境 id:环境唯一标识符-->
<!-- 事务管理器 type="JDBC":以JDBC的方式管理事务 -->
<transactionManager type="JDBC"></transactionManager>
<!-- 数据库连接池:配置连接池和参数 type="POOLED":采取连接池技术
property:配置参数
-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!-- 扫描mapper文件 -->
<mappers>
<mapper resource="com/bjsxt/mapper/UserMapper.xml"/>
</mappers>
</configuration>
Session工具包:
package com.bjsxt.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SessionUtil {
private static SqlSessionFactory factory=null;
static{
try {
InputStream is = Resources.getResourceAsStream("mybatis.xml");
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static SqlSession getSession(){
SqlSession session = null;
if(factory!=null){
//mybati会关闭自动提交功能
session=factory.openSession();
}
return session;
}
}
测试:
package com.bjsxt.test;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.bjsxt.pojo.User;
import com.bjsxt.util.SessionUtil;
public class TestInsert {
@Test
public void testInser(){
SqlSession session = SessionUtil.getSession();
User u = new User();
u.setUsername("小好");
u.setPassword("123");
int num=session.insert("com.bjsxt.mapper.UserMapper.insertUser", u);
if(num>0){
session.commit();
System.out.println("成功");
}else{
session.rollback();
System.out.println("失败");
}
session.close();
}
@Test
public void testUpdate(){
SqlSession session = SessionUtil.getSession();
User u = new User();
u.setId(6);
u.setUsername("小空");
u.setPassword("abc");
int num=session.insert("com.bjsxt.mapper.UserMapper.updatetUser", u);
if(num>0){
session.commit();
System.out.println("成功");
}else{
session.rollback();
System.out.println("失败");
}
session.close();
}
@Test
public void testDelete(){
SqlSession session = SessionUtil.getSession();
int num=session.insert("com.bjsxt.mapper.UserMapper.deleteUser", 3);
if(num>0){
session.commit();
System.out.println("成功");
}else{
session.rollback();
System.out.println("失败");
}
session.close();
}
}