(一)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,插入两条数据。
上面的插入语句,id是可以自动增长的主键。
5.在src下创建bdt.model包,此包主要放与数据库对应的实体类。在此包下面新建实体类User.java
6.src下创建bdt.mapper包,此包主要放映射的类的xml配置文件和接口(这个以后再说),然后在此包下新建User.xml文件,文件内容如下:
7.在config文件夹下创建mybatis-config.xml文件,文件内容如下:
好的,到现在基本文件都搭建完成了,下面先进行一下测试,先看看我们的配置成果。测试之后会对以上配置做一个说明。
在test文件夹下创建bdt.TestUser的Junit测试类,测试代码如下:
我们选中测试方法,执行
得到结果
综合说明:
到目前为止共有两个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已经搭建完成并测试成功了,并对基本的配置有一点了解,但是还不够,接下来会更深入的学习。
先准备好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已经搭建完成并测试成功了,并对基本的配置有一点了解,但是还不够,接下来会更深入的学习。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复
- MySQL 优化
- MySQL 数据类型