【MyBatis-02】一个小Demo

来源:互联网 发布:淘宝动态计算器 编辑:程序博客网 时间:2024/05/22 05:27

上一节讲解了mybatis的概要介绍及宏观流程,可能大家知道一些概念,本章我们来一个简单的demo


1.创建数据库course_mybatis,并在其上创建表class_info:

CREATE TABLE `class_info` (  `classid` int(11) unsigned NOT NULL AUTO_INCREMENT,  `classname` varchar(255) DEFAULT NULL,  `classlocation` varchar(255) DEFAULT NULL,  `memo` varchar(255) DEFAULT NULL,  PRIMARY KEY (`classid`)) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;


2.创建java项目 mybatisdemo01,并创建一个lib文件夹


3.导入jar包


4.将jar包添加到build path... 这一步就不贴图了,截止这里,工程文件就创建好了。

5.在项目上添加source folder -->config







6.在config中添加全局配置文件,名称建议是SqlMapConfig.xml,内容为

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><environments default="defaultEnvironment"><environment id="defaultEnvironment"><transactionManager type="JDBC"></transactionManager><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url"value="jdbc:mysql://localhost:3306/course_mybatis?useUnicode=true&characterEncoding=utf8" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments></configuration>


7.如下为解释:



8.创建pojo类,用来映射输出结果的类型

package com.jumore.mybatisdemo01.pojo;public class ClassInfo {private int classid;private String classname;private String classlocation;private String memo;public int getClassid() {return classid;}public void setClassid(int classid) {this.classid = classid;}public String getClassname() {return classname;}public void setClassname(String classname) {this.classname = classname;}public String getClasslocation() {return classlocation;}public void setClasslocation(String classlocation) {this.classlocation = classlocation;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}@Overridepublic String toString() {return "ClassInfo [classid=" + classid + ", classname=" + classname + ", classlocation=" + classlocation+ ", memo=" + memo + "]";}}



9.在config文件夹中创建ClassInfoMapper.xml配置文件


<?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="mybatisdemo01"><select id="findClassById" parameterType="int"resultType="com.jumore.mybatisdemo01.pojo.ClassInfo">SELECT * from class_info where classid=#{id}</select></mapper>



10.对代码的解释


11.创建测试代码

package mybatisdemo01.test;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;import org.junit.Test;import com.jumore.mybatisdemo01.pojo.ClassInfo;public class Mybatis01Test {@Testpublic void findUserByIdTest() throws IOException{//全局配置文件的文件名String resource="SqlMapConfig.xml";//将全局配置文件加载到Stream中InputStream is=Resources.getResourceAsStream(resource);//根据全局配置文件创建SqlSessionFactorySqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(is);//生成SqlSessionSqlSession sqlSession=sqlSessionFactory.openSession();//使用SqlSession执行指定的statement,并将结果返回给指定参数ClassInfo classInfo=sqlSession.selectOne("mybatisdemo01.findClassById", 1);//打印结果System.out.println(classInfo);}}

12.整体的目录结构为: