首先我们介绍一下mybatis中一些自带常用的方法,后面我们介绍如何搭建mybatis环境
① selectByPrimaryKey()
User user = userDAO.selectByPrimaryKey(100); 相当于select * from user where id = 100
② selectByExample() 和 selectByExampleWithBLOGs()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("joe");
criteria.andUsernameIsNull();
example.setOrderByClause("username asc,email desc");
List<?>list = userDAO.selectByExample(example);
相当于:select * from user where username = 'joe' and username is null order by username asc,email desc
注:在iBator 生成的文件UserExample.java中包含一个static 的内部类 Criteria ,在Criteria中有很多方法,主要是定义SQL 语句where后的查询条件。
③ insert()
User user = new User();
user.setId(101);
user.setUsername("test");
user.setPassword("123")
user.setEmail("");
userDAO.insert(user);
相当于:insert into user(ID,username,password,email) values(101,'test','123','');
④ updateByPrimaryKey() 和 updateByPrimaryKeySelective()
User user =new User();
user.setId(101);
user.setUsername("joe");
user.setPassword("joe");
user.setEmail("");
userDAO.updateByPrimaryKey(user);
相当于:update user set username='joe',password='joe',email='' where id=101
User user = new User();
user.setId(101);
user.setPassword("joe");
userDAO.updateByPrimaryKeySelective(user);
相当于:update user set password='joe' where id=101
⑤updateByExample() 和 updateByExampleSelective()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("joe");
User user = new User();
user.setPassword("123");
userDAO.updateByPrimaryKeySelective(user,example);
相当于:update user set password='123' where username='joe'
⑥deleteByPrimaryKey()
userDAO.deleteByPrimaryKey(101); 相当于:delete from user where id=101
⑦ deleteByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("joe");
userDAO.deleteByExample(example);
相当于:delete from user where username='joe'
⑧ countByExample()
UserExample example = new UserExample();
Criteria criteria = example.createCriteria();
criteria.andUsernameEqualTo("joe");
int count = userDAO.countByExample(example);
相当于:select count(*) from user where username='joe'
.......................................................我是分割线,下面就是如何搭建项目................................................................
1,第一步你应该建立好自己的数据库
CREATE DATABASE /*!32312 IF NOT EXISTS*/`myproject` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
USE `myproject`;
CREATE TABLE `role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
`detail` varchar(255) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `sysuser` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '用户名',
`password` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '密码',
`name` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
`detail` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '备注',
`roleId` bigint(20) DEFAULT NULL COMMENT '角色ID',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
2,在myeclipse中建立好项目,MySSIProject。
3,导入所需基础jar包
log4j-1.2.16.jar #mybatis的日志是基于log4j的
mybatis-3.0.6.jar #mybatis核心包,肯定少不了,我是用的版本是3
mybatis-generator-core-1.3.1.jar #mybatis自动生成文件的包,如果需要自动生成文件则导入
mysql-connector-java-5.1.6-bin.jar #mysql数据库连接工具(本人使用的是mysql数据库)
4,在工程建立包结构,后面自动生成代码需要指定生成在什么位置
5,在MySSIProject项目根目录下新建generatorConfig.xml文件,用来实现自动生成mybatis配置文件,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动 指定mysql链接jar包位置 -->
<classPathEntry location="D:/workspace/MySSIProject/WebRoot/WEB-INF/lib/mysql-connector-java-5.1.6-bin.jar" />
<context id="MyBatis3" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true" />
</commentGenerator>
<!-- 数据库配置 地址 用户名 密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/myproject"
userId="root"
password="root">
</jdbcConnection>
<!-- model配置 指定那个包存放数据库实体类 targetProject为项目src文件在硬盘实际路径 -->
<javaModelGenerator targetPackage="com.itcast.database.model" targetProject="D:/workspace/MySSIProject/src">
<property name="enableSubPackages" value="true" />
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- dao配置 指定那个包存放数据库操作文件-->
<sqlMapGenerator targetPackage="com.itcast.database.dao" targetProject="D:/workspace/MySSIProject/src">
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.itcast.database.dao" targetProject="D:/workspace/MySSIProject/src">
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 指定需要自动生成文件的表 tableName为表名 domainObjectName为系统生成后名字 -->
<table tableName="sysuser" domainObjectName="sysuser"></table>
<table tableName="role" domainObjectName="role"></table>
</context>
</generatorConfiguration>
说明:以上location,targetProject路径均为所需文件所在硬盘具体实际位置,
6.打开cmd窗口,进入你项目的根目录 比如我就是进入:D:\workspace\MySSIProject> 因为的的项目在这个位置。(当然你也可以不这么做,我的目的是找到generatorConfig.xml配置文件,毕竟他就在这里,你在别的位置只要后面指定generatorConfig.xml时把路径写对就好),然后输入:java -jar WebRoot/WEB-INF/lib/mybatis-generator-core-1.3.1.jar -configfile generatorConfig.xml -overwrite (这是一行命令),回车执行,见到MyBatis Generator finshed successfully.你就可以去项目看你的杰作了。好运