MyBatis入门案例
2017-03-13 17:15
411 查看
MyBatis入门案例
项目结构:
![](http://img.blog.csdn.net/20170313170808031?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDQyNzkzNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
pom文件
3.数据库脚本:
4.po实体类
5.映射文件
6.mybatis的配置文件
6.测试代码
7.数据库插入的测试数据
项目结构:
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.数据库插入的测试数据
相关文章推荐