1、快速配置环境
引入jar,解压jar,找到mybatis-3.2.2.jar\org\apache\ibatis\builder\xml下的两个dtd文件添加到eclipse中如下图:
如果你能记得住标签就不用了,当然也是能提高写代码速度的。
2、编写核心配置文件
核心配置文件是用于连接数据库的配置文件,以及增删改查具体操作的映射文件。如下图:
<?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>
<environments default="test">
<!-- 设置当前调用的是那个环境 -->
<environment id="test">
<!-- 事务有两种选择JDBC管理和MANGED自己管理 -->
<transactionManager type="JDBC" />
<!-- 资源管理有三种:POOLED/池化的 UNPOOLED/非池化的 JUNI/安全系数高 -->
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:XE" /><!-- 可以指定读取编码 -->
<property name="username" value="shoppingmall" />
<property name="password" value="shoppingmall" />
</dataSource>
</environment>
<!-- 设置当前调用的是那个环境 -->
<environment id="deploy">
<!-- 事务有两种选择JDBC管理和MANGED自己管理 -->
<transactionManager type="JDBC" />
<!-- 资源管理有三种:POOLED/池化的 UNPOOLED/非池化的 JUNI/安全系数高 -->
<dataSource type="POOLED">
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:127.0.0.1:1521:XE?charsetcoding = utf8" />
<property name="username" value="admin" />
<property name="password" value="admin" />
</dataSource>
</environment>
</environments>
<mappers >
<mapper resource="cn/banwxf/shoppingmall/mybatis/CartProductMapper.xml"/>
<mapper resource="cn/banwxf/shoppingmall/mybatis/UserMapper.xml"/>
</mappers>
</configuration>
3、加载核心配置文件,链接数据库
获取sqlSessionFactory对象,因为sqlSessionFactory是线程安全的,而sqlsession是不安全的,所以呢sqlsession每次操作都要重新获取,而sqlSessionFactory有一个即可。
public class SessionFactory {
public SqlSessionFactory sqlSessionFactory;
public SessionFactory(){
if (sqlSessionFactory==null) {
initSqlSessionFactory();
}
}
public void initSqlSessionFactory() {
InputStream is = null;
try {
is = Resources.getResourceAsStream("Config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
System.out.println(sqlSessionFactory.toString());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
4、编写具体的映射文件
<?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="UserMapper">
<resultMap type="cn.banwxf.shoppingmall.beans.UserInfo" id="selectUser">
<id property="userId" column="user_id" />
<result property="password" column="user_password" />
<result property="userName" column="user_name" />
<result property="userScore" column="user_score" />
<result property="userLevel" column="user_grade" />
<result property="isVip" column="is_vip" />
<result property="headImage" column="head_image" />
</resultMap>
<select id="login" parameterType="String" resultMap="selectUser">
select
user_id,user_name,user_password,user_score,user_grade,head_image,is_vip
from "user" where user_id=${value}
</select>
<insert id="register" parameterType="cn.banwxf.shoppingmall.beans.UserInfo">
insert into "user"(user_id,user_name,user_password,user_score,user_grade,head_image,is_vip)
values(#{userId},#{userName},#{password},#{userScore},#{userLevel},#{headImage},#{isVip})
</insert>
</mapper>