1.导入jar包
MyBatis在github上的主页:https://github.com/mybatis/mybatis-3,直接下载,选择解压后文件中的mybatis-3.3.1.jar
其他三个文档为用户手册、MyBatis源码以及注解文档。
2.编写config.xml以下为简单模板,没有使用property文件
<?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="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" /><!-- 驱动包 -->
<property name="url" value="jdbc:mysql://localhost/xy36_mss" /> <!-- url -->
<property name="username" value="root" /><!-- username -->
<property name="password" value="root" /><!-- password -->
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/yufeng/model/UserMapper.xml"/> <!-- 映射文件 -->
</mappers>
</configuration>
3.编写JavaBean
package com.yufeng.model;
import java.io.Serializable;
public class User implements Serializable{
/** * */
private static final long serialVersionUID = 8027397040189411533L;
protected String account;
protected String pwd;
protected String status;
protected String userId;
protected String userName;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
这里需要说明的是:(1)实现 Serializable是为了跨平台之后JavaBean任然可以正常使用。
(2)修饰属性,我习惯使用protected,因为子类可以直接访问属性
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="yufeng.User"> <!-- 命名空间 ,名字要唯一 -->
<sql id="user_sql"><!-- 一个sql语句模板 ,可以用于字符串拼接 -->
user_id as userId,
account,
password as pwd,
user_name as userName,
status
</sql>
<insert id="add" parameterType="com.yufeng.model.User" ><!-- 插入操作,id在同一命名空间内要唯一,当传入类型为普通类型时,使用parameterType,不需要使用parameterMap关键字 -->
INSERT INTO
SYS_USER
(account,password,user_name)
VALUES
(#{account},#{pwd},#{userName}) <!-- 直接访问对象的属性 -->
</insert>
<select id="select" parameterType="int" resultType="com.yufeng.model.User"><!-- 查询操作操作 -->
select
<include refid="user_sql"></include>
from sys_user where user_id = #{asdf} <!-- 只有一个属性的时候,参数名字可以随便起 -->
</select>
<select id="list" parameterType="int" resultType="com.yufeng.model.User">
select
<include refid="user_sql"></include>
from sys_user
</select>
<select id="like" parameterType="string" resultType="com.yufeng.model.User">
select
<include refid="user_sql"></include>
from sys_user where user_name like #{ asdf }
</select>
</mapper>
5.在config.xml中配置映射
在2中已配置
6.查询操作
package com.yufeng.test;
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;
import com.yufeng.model.User;
public class 用户查询操作 {
public static void main(String[] args) {
String path = "mybatis-config.xml";//在src路径下时可以直接这样写
SqlSession session = null;
try {
/** 1.读取session文件 */
InputStream input = Resources.getResourceAsStream(path);
/** 2.创建SessionFactory 相当于建立Connection */
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(input);
/** 3.打开Session,相当于创建Statement */
session = factory.openSession();
/** 4.执行操作*/
System.out.println(session.selectOne("yufeng.User.select", 1));//selectOne的第一个参数是namespace+id
} catch (Exception e) {
e.printStackTrace();
}finally{
/** 6.关闭连接 */
if(session!=null){
session.close();
}
}
}
}