您的位置:首页 > 数据库 > MySQL

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

2015-07-31 19:50 691 查看
mybatis介绍就不多提了,直接步入正题。

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



文件和类很少,所以mybatis的搭建是非常简单的,如搭建中遇到问题可以先参考文档最后一部分的综合说明。
1.下载mybatis-3.2.3.jar和mysql-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,分别为config和test。



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 configuration
PUBLIC "-//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.TestUser的Junit测试类,测试代码如下:

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;
}

@Test
public 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已经搭建完成并测试成功了,并对基本的配置有一点了解,但是还不够,接下来会更深入的学习。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis mysql 环境搭建