(一)mybatis+mysql 基本环境搭建

来源:互联网 发布:美国p2p软件 编辑:程序博客网 时间:2024/06/10 18:43

mybatis介绍就不多提了,直接步入正题。

先准备好eclipse和MySQL,然后先看一下目录结构


文件和类很少,所以mybatis的搭建是非常简单的,如搭建中遇到问题可以先参考文档最后一部分的综合说明。

1.下载mybatis-3.2.3.jarmysql-connector-java-5.1.12-bin.jar两个jar包,可以到各自官网下载,也可以到我提供的下载地址下载,里面包含了之后需要的很多jar包。地址http://download.csdn.net/detail/long_li99/8950445

2.创建Dynamic Web project项目名MyBatis,把jar包复制到WEB-INF/lib文件夹下。

3.在建立好的项目中,再创建两个Source Folder,分别为configtest


src是源代码文件,config建立的都是配置文件,test是以后专门做JUnit测试的

4.创建数据库test(略),并创建表user,插入两条数据。

CREATE TABLE user(id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(30) DEFAULT NULL,age INT(3) DEFAULT NULL,birthday DATE DEFAULT null,PRIMARY KEY(id))INSERT INTO user(name, age, birthday) VALUES('张三', 25, STR_TO_DATE('1990-05-21','%Y-%m-%d'));INSERT INTO user(name, age, birthday) VALUES('李四', 24, STR_TO_DATE('1991-07-06','%Y-%m-%d'));INSERT INTO user(name, age, birthday) VALUES('王五', 24, STR_TO_DATE('1991-01-02','%Y-%m-%d'));</span></span></span>

上面的插入语句,id是可以自动增长的主键。

5.src下创建bdt.model包,此包主要放与数据库对应的实体类。在此包下面新建实体类User.java

public class User {private Integer id;private String name;private Integer age;private Date birth;// 构造方法……// getter和setter方法……// toString()方法……}</span></span></span>

6.src下创建bdt.mapper包,此包主要放映射的类的xml配置文件和接口(这个以后再说),然后在此包下新建User.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="bdt.mapper.User">    <select id="selectUserByID" parameterType="int" resultType="user">        select * from user where id = #{id}    </select></mapper></span></span>

7.config文件夹下创建mybatis-config.xml文件,文件内容如下:

<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 实体类别名,对应映射文件中的resultType --><typeAliases><typeAlias alias="user" type="bdt.model.User"/></typeAliases><!-- 数据库连接配置,配置连接字符串、用户名、密码或缓存、懒加载、语句执行超时时间等这里目前只配置了基本的数据库连接属性 --><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:3306/test" /><property name="username" value="root" /><property name="password" value="root" /></dataSource></environment></environments><!-- 实体与数据库表映射文件位置,配置后MyBatis才会找到并加载上 --><mappers><mapper resource="bdt/mapper/User.xml" /></mappers></configuration></span></span>

好的,到现在基本文件都搭建完成了,下面先进行一下测试,先看看我们的配置成果。测试之后会对以上配置做一个说明。

test文件夹下创建bdt.TestUserJunit测试类,测试代码如下:

public class TestUser {/** * SqlSessionFactory是用来创建SqlSession的工厂,SqlSession会执行映射的语句,进行事物提交、回滚等。 * @return */public SqlSessionFactory getSqlSessionFactory() {Reader reader = null;SqlSessionFactory sqlSessionFactory = null;try {reader = Resources.getResourceAsReader("mybatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);} catch (IOException e) {e.printStackTrace();}return sqlSessionFactory;}@Testpublic void selectUserByID() {// 得到SqlSession实例,便于执行增删改查、事务提交回滚等操作。SqlSession session = getSqlSessionFactory().openSession();try {User user = (User)session.selectOne("bdt.mapper.User.selectUserByID", 2);System.out.println(user);} finally {session.close();}}</span></span>

我们选中测试方法,执行


得到结果



综合说明:

到目前为止共有两个xml配置文件。mybatis-config.xml文件时mybatis的核心配置文件,里面配置了实体类别名<typeAliases>、数据库连接环境<environments>、实体类映射的xml配置文件的加载<mappers>等。User.xml配置文件是我们写sql语句的文件,与实体类一一对应,映射对应的数据库表。下图是对两个配置文件和测试代码关系的展示:


对应图中编号

1. 实体类别名。在User.xml配置文件中的resultType返回值类型是实体的时候写此别名,不配置的话,需要写bdt.model.User会很麻烦,这样一配置一劳永逸。resultType还有map等返回值类型,之后再说。

2. mappers标签配置的是需要加载哪些配置文件,不配置系统就不知道你有此User.xml配置文件。

3. 映射的命名空间,目前这个可以是随意字符串,但是在以后用接口的方式的时候就不能随便写了,目前可以随便写。

4. 要执行哪个语句,必须是唯一值,开发中会有很多增删改查语句,这个必须唯一的指定要执行哪条语句。

5. 传入语句的条件,会有很多类型,这里是int类型,#{id}方式可以获得传进来的条件参数。

6. bdt.model.User,对应实体类。

7. 另外还需要注意图中三个绿色方框内容,<typeAliases><environments><mappers>这三个的顺序是不能颠倒的,如果颠倒会报如下错误:

The content of element type "configuration" must match 

"(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)".

显而易见,配置文件中的标签是有顺序的,正确的顺序错误提示中已经列出来了,之后我们还要添加<properties>配置文件,自然而然必须放到<typeAliases>之前。

 

好的,我的mybatis已经搭建完成并测试成功了,并对基本的配置有一点了解,但是还不够,接下来会更深入的学习。

1 0