我的理解mybatis就是把sql语句剥离出来。
mybatis基本配置
mybatis-config.xml
<configuration>
<properties resource="jdbc.properties"/>
<typeAliases>
<package name="com.hfview.po"/>
typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<property name="url" value="${url}"/>
dataSource>
environment>
environments>
<mappers>
<mapper resource="com/hfview/po/user.xml"/>
<mapper resource="com/hfview/po/menu.xml"/>
<mapper resource="com/hfview/po/car.xml"/>
<mapper resource="com/hfview/po/coach.xml"/>
<mapper resource="com/hfview/po/driverecord.xml"/>
<mapper resource="com/hfview/po/orderrecord.xml"/>
<mapper resource="com/hfview/po/userscore.xml"/>
mappers>
configuration>
其中一个mapper大概是这样
version="1.0" encoding="UTF-8"?>
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
"com.hfview.po.User">
id="userColumns">id,password,name,sex,cellPhone,startTime,endTime,dropTime,nowType,expType,description,status,image,coachId,cardId
id="menuColumns">menuId,menuName,menuLevel,menuParentId,menuParentName,menuURL,menuOrder,description
id="add" parameterType="User">
insert into T_User (password,name,sex,cellPhone,startTime,endTime,dropTime,nowType,expType,description,status,image,coachId,cardId)
values(#{password},#{name},#{sex},#{cellPhone},#{startTime},#{endTime},#{dropTime},
#{nowType},#{expType},#{description},#{status},#{image},#{coachId},#{cardId})
id="add_batch" parameterType="map">
insert into T_UserAction (userId,menuId)
values (#{userId},#{menuId})
id="edit" parameterType="User">
update T_User set password=#{password},name=#{name},sex=#{sex},cellPhone=#{cellPhone},startTime=#{startTime},endTime=#{endTime},dropTime=#{dropTime},
nowType=#{nowType},expType=#{expType},description=#{description},status=#{status},image=#{image},coachId=#{coachId},cardId=#{cardId}
where id=#{id}
id="delete" parameterType="int">
delete T_User where id=#{id}
id="delete_union" parameterType="int">
delete T_UserAction where userId=#{userId}
然后定义SqlSessionFactory和SqlSession的获取方式
package com.hfview.utils;
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 MyBatisUtil {
private static SqlSessionFactory factory;
static {
try {
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
factory = new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession createSession() {
return factory.openSession();
}
public static void closeSession(SqlSession session) {
if(session!=null) session.close();
}
}
mybatis的使用
package com.hfview.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Component;
import com.hfview.dao.BaseDao;
import com.hfview.po.Menu;
import com.hfview.po.User;
import com.hfview.utils.DBConnection;
import com.hfview.utils.MyBatisUtil;
@Component
public class UserDaoImpl extends BaseDao {
public List
这个只是最基本的配置,后面会将mybatis和spring结合配置、事物配置、以及详细的用法