第一次接触mybatis还是上次组长让我维护的08年的一个老的项目,第一次看见sql语句写在Xml里,感觉好好玩,一直想学学,一直没机会,这次利用这几天的空闲时间,简单的学习了一下,哈哈,自己根据网上资料用junit做了一个简单的CRUD!废话不多说,上代码!
首先我们配置一下数据连接,为此我们为数据连接单独创建一个db.properties,我用的是sqlserver:由于我用的是公司内部的测试库,ip和端口号就用0来代替了
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://000.000.0.00:0000;databaseName=mybatis
name=sa
password=111111
接下来就是mybatis的核心配置文件 configuration.xml:
这里的为实体类创建别名很好用,如果不配置一下,在后面编写映射文件的时候很麻烦,这里我觉得第二种也就是默认得更方便
<?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>
<!--引用db.properties配置文件-->
<properties resource="db.properties"/>
<!--1.为实体类创建别名
<typeAliases>
<typeAlias type="com.cj.Domain.User" alias="_User"/>
</typeAliases>-->
<!--2.为某包下所有实体类创建别名,mybatis默认为去除该类所在的包名,如下变成User,Order-->
<typeAliases>
<package name="com.cj.Domain" />
</typeAliases>
<!--development:开发模式
work:工作模式
-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<!--配置数据库信息-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${name}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
</configuration>
CREATE TABLE users(
id int identity(1,1),constraint pkid primary key (id),
NAME VARCHAR(20),
age INT);
实体类:
接下来配置映射文件:
这里我在自己敲的时候遇到的二笔错误也说一下:配置映射文件的时候namespace是独一无二的,而且这个namespace在测试类中也会用到,是通过这个namespace来找到其中对应的sql(根据id)语句的,大家也看到我这里有三个映射文件,userMapping.xml是第一次写的,namespace却是com.cj.mapping.userMapper,,namespace最好跟配置文件名统一,规范嘛,也不容易出错!!
parameterType是传入参数的类型,resultType是查询结果的类型!
接下来就是测试了,这里,为了减少代码量,我写了一个获取SqlSession的工具类:MyBatisUtil.java
现在我们来测试:
新建一个junit的测试类
代码如下:这里先使用xml配置文件的方式,下一篇说说用注解的方式,个人感觉xml好用
junit的使用就不做赘述了,查询单个的运行结果: