2017 06 11
搭建环境
引入jar包
Build Path
配置
主配置文件(Mybatis-Config.xml)
添加操作:
Map添加:
mappers内容:
<mapper namespace="com.test.soucemapper">
<insert id="add02" parameterType="map">
INSERT INTO user
(account,password,user_name)
VALUES
(#{account},#{password},#{user_name})
</insert>
</mapper>
test内容:
Map<String , Object> tempMap = new HashMap<String , Object>();
tempMap.put("Key","Value");
tempMap.put("name","admin");
tempMap.put("account","admin");
tempMap.put("password","admin");
int row = SqlSession.insert("com.test.soucemapper",tempMap);
SqlSession.commit();
持久化对象添加
关联对象
B类对象作为A类中属性存在 即可通过A类的调用接口调用到B类
进而调用到B类的属性
返回主键
在mappers文件中 对想要返回主键有以方便进行下一步操作的CRUD语句
如同下面语句 添加属性定义
<insert id="add03" parameterType="com.shxt.domain.User"
useGeneratedKeys="true" keyProperty="userID">
INSERT INTO user
(account,password,user_name,dept_id)
VALUES
(#{account},#{password},#{user_name},#{dept.deptId})
</insert>
更新操作 :
Mappers内操作:
<update id = "update01" parameterType = "com.shxt.domain.User">
UPDATE
user
SET
<!-- 字段 = #{属性}-->
account=#{account},
password=#{pwd},
user_name=#{UserName},
dept_Id=#{dept.deptid},
WHERE
user_Id=#{userId}
</update>
删除操作 :
Mappers内操作:
<delete id = "delete01" parameterType = "_int">
DELETE FROM
user
WHERE
<!-- 当你传递的值为一个简单数据类型(基本数据类型 和
String)的时候 #{XXXX} XXXX的值可以随意填写-->
user_Id=#{Wo-Xia-Xie-De}
</delete>
封装工具类 MyBatisUtils.java
在test测试文件中 用SqlSession接口创建SqlSession对象等操作是必须的 如果存在多个方法 代码冗余量会加大 所以可以将其封装成工具类 在以后的代码中调用
创建com.shxt.util包
文件内存在两个方法
getSqlSession() 拿到SqlSession对象
closeSqlSession(SqlSession sqlSession) 关闭资源
MyBatisUtils工具类代码示例 :
package com.shxt.util;
import java.io.BufferedInputStream;
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;
/**
* 关键字final的特点:
* 1.类:不能被继承
* 2.方法:不能被重写
* 3.变量:不能被修改-常量大写
*/
public final class MyBatisUtils {
/**该类不允许被实例化*/
private MyBatisUtils(){}
/**全局变量:可以隐性赋值, 共享数据,只有一个实例*/
/*单例设计模式实现方式*/
private static SqlSessionFactory sqlSessionFactory;
/**常量:设置核心配置文件的位置 路径+文件名称*/
private static final String PATH = "mybatis-config.xml";
/**
* static关键字:
* 随着类的加载而加载
* 只是加载一次
* 只能使用类方法和类变量
*/
static{
try {
//读取核心配置文件信息,通过缓冲流提高效率
InputStream is = new BufferedInputStream(Resources.getResourceAsStream(PATH));
//创建SqlSession工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException ex) {
ex.printStackTrace();//控制台打印详细信息
//处理异常信息
throw new RuntimeException("加载核心配置文件失败");
}
}
/**
* 获取SqlSession,用来完成CRUD操作
* @return
*/
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
/**
* 关闭资源
* @param sqlSession
*/
public static void closeSqlSession(SqlSession sqlSession){
if(sqlSession!=null){
sqlSession.close();
}
}
}