您的位置:首页 > 其它

MyBatis入门案例

2017-03-13 17:15 411 查看
MyBatis入门案例

项目结构:



pom文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>com.sun.mybatis</groupId>
<artifactId>Mybatis_Basic</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>

</dependencies>
</project>


3.数据库脚本:

CREATE TABLE `member` (
`mid` varchar(50) NOT NULL DEFAULT '',
`name` varchar(50) NOT NULL,
`age` int(11) DEFAULT NULL,
`salary` double DEFAULT NULL,
`birthday` date DEFAULT NULL,
`sex` varchar(10) DEFAULT NULL,
`note` text,
PRIMARY KEY (`mid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


4.po实体类

package com.sun.mybatis.pojo;

import java.io.Serializable;
import java.util.Date;

public class Member implements Serializable{
/**
* serialVersionUID
*/
private static final long serialVersionUID = -2441108594669418087L;

private String mid;

private String name;

private Integer age;

private Double salary;

private Date birthday;

private String sex;

private String note;

public String getMid() {
return mid;
}

public void setMid(String mid) {
this.mid = mid;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

public Double getSalary() {
return salary;
}

public void setSalary(Double salary) {
this.salary = salary;
}

public Date getBirthday() {
return birthday;
}

public void setBirthday(Date birthday) {
this.birthday = birthday;
}

public String getSex() {
return sex;
}

public void setSex(String sex) {
this.sex = sex;
}

public String getNote() {
return note;
}

public void setNote(String note) {
this.note = note;
}
}


5.映射文件

<?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="com.sun.sqlMap.MemberMapper" >
<resultMap id="BaseResultMap" type="com.sun.mybatis.pojo.Member" >
<id column="mid" property="mid" jdbcType="VARCHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
<result column="salary" property="salary" jdbcType="DOUBLE" />
<result column="birthday" property="birthday" jdbcType="DATE" />
<result column="sex" property="sex" jdbcType="VARCHAR" />
</resultMap>
<resultMap id="ResultMapWithBLOBs" type="com.sun.mybatis.pojo.Member" extends="BaseResultMap" >
<result column="note" property="note" jdbcType="LONGVARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
mid, name, age, salary, birthday, sex
</sql>
<sql id="Blob_Column_List" >
note
</sql>
<select id="selectByPrimaryKey" resultMap="ResultMapWithBLOBs" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
,
<include refid="Blob_Column_List" />
from member
where mid = #{mid,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from member
where mid = #{mid,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.sun.mybatis.pojo.Member" >
insert into member (mid, name, age,
salary, birthday, sex,
note)
values (#{mid,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER},
#{salary,jdbcType=DOUBLE}, #{birthday,jdbcType=DATE}, #{sex,jdbcType=VARCHAR},
#{note,jdbcType=LONGVARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.sun.mybatis.pojo.Member" >
insert into member
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="mid != null" >
mid,
</if>
<if test="name != null" >
name,
</if>
<if test="age != null" >
age,
</if>
<if test="salary != null" >
salary,
</if>
<if test="birthday != null" >
birthday,
</if>
<if test="sex != null" >
sex,
</if>
<if test="note != null" >
note,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="mid != null" >
#{mid,jdbcType=VARCHAR},
</if>
<if test="name != null" >
#{name,jdbcType=VARCHAR},
</if>
<if test="age != null" >
#{age,jdbcType=INTEGER},
</if>
<if test="salary != null" >
#{salary,jdbcType=DOUBLE},
</if>
<if test="birthday != null" >
#{birthday,jdbcType=DATE},
</if>
<if test="sex != null" >
#{sex,jdbcType=VARCHAR},
</if>
<if test="note != null" >
#{note,jdbcType=LONGVARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.sun.mybatis.pojo.Member" >
update member
<set >
<if test="name != null" >
name = #{name,jdbcType=VARCHAR},
</if>
<if test="age != null" >
age = #{age,jdbcType=INTEGER},
</if>
<if test="salary != null" >
salary = #{salary,jdbcType=DOUBLE},
</if>
<if test="birthday != null" >
birthday = #{birthday,jdbcType=DATE},
</if>
<if test="sex != null" >
sex = #{sex,jdbcType=VARCHAR},
</if>
<if test="note != null" >
note = #{note,jdbcType=LONGVARCHAR},
</if>
</set>
where mid = #{mid,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKeyWithBLOBs" parameterType="com.sun.mybatis.pojo.Member" >
update member
set name = #{name,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
salary = #{salary,jdbcType=DOUBLE},
birthday = #{birthday,jdbcType=DATE},
sex = #{sex,jdbcType=VARCHAR},
note = #{note,jdbcType=LONGVARCHAR}
where mid = #{mid,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.sun.mybatis.pojo.Member" >
update member
set name = #{name,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
salary = #{salary,jdbcType=DOUBLE},
birthday = #{birthday,jdbcType=DATE},
sex = #{sex,jdbcType=VARCHAR}
where mid = #{mid,jdbcType=VARCHAR}
</update>
</mapper>


6.mybatis的配置文件

<?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="org.gjt.mm.mysql.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF8" />
<property name="username" value="root" />
<property name="password" value="1127" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/sun/sqlMap/MemberMapper.xml" />
</mappers>
</configuration>


6.测试代码

package com.sun.mybatis.pojo;

import java.io.IOException;
import java.io.Reader;
import java.util.Date;

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 org.junit.Test;

/**
* 用户测试用例
* MemberTest.java
* @author sunt
*
* 2017年3月13日下午4:39:20
*/
public class MemberTest {

/**
* 配置文件的路径
*/
private static String CFG_FILE_PATH = "mybatis.cfg.xml";

/**
* 测试添加数据
* 2017年3月13日下午4:41:38
* @return void
* @throws IOException
* 注意事项:
*  配置文件的路径:不能加classpath
*  保存数据的时候:命名空间 + "." + 方法名
*  mysql数据库驱动与数据库版本号尽可能保持一致
*/
@Test
public void testInsert() throws IOException {
//1.加载配置文件获取sqlSesion对象
Reader reader = Resources.getResourceAsReader(CFG_FILE_PATH);

//2.构建会话工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);

//3.通过工厂取得连接信息
SqlSession session = factory.openSession();

//4.分装数据
Member member = new Member();
member.setMid(Long.toString(System.currentTimeMillis()));
member.setAge(22);
member.setBirthday(new Date());
member.setName("小明");
member.setNote("测试保存数据");
member.setSalary(6868.00);
member.setSex("男");
//5.保存数据
session.insert("com.sun.sqlMap.MemberMapper.insert", member);
//6.提交事物关闭会话
session.commit();
session.close();
}

}


7.数据库插入的测试数据

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis mybatis入门