00.环境
jdk 1.8.0_25
mysql 5.6.24
eclipse 4.5.2
01.目录结构
不要忘记将mysql-connector-java-5.1.7-bin.jar,mybatis-3.2.7.jar右击Build Path。
02.准备数据
a.新建数据库my_first_batis
b.创建表
CREATE TABLE `user` (
`id` int(14) NOT NULL AUTO_INCREMENT,
`name` varchar(32) NOT NULL COMMENT '姓名',
`birthday` date DEFAULT NULL COMMENT '生日',
`sex` char(1) DEFAULT NULL COMMENT '性别',
`address` varchar(256) DEFAULT NULL COMMENT '何方神圣',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
c.插入数据
insert into `user`(`name`,`birthday`,`sex`,`address`) values ('张三丰','1247-08-08','男','武当山');
insert into `user`(`name`,`birthday`,`sex`,`address`) values ('李四光','1889-10-26','男','科学院');
insert into `user`(`name`,`birthday`,`sex`,`address`) values ('王阳明','1472-10-31','男','贵州龙场');
insert into `user`(`name`,`birthday`,`sex`,`address`) values ('李清照','1084-07-07','女','山东济南');
insert into `user`(`name`,`birthday`,`sex`,`address`) values ('孔乙己','1850-06-06','男','浙江绍兴');
03.mybatis配置文件
SqlMapConfig.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>
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理-->
<transactionManager type="JDBC" />
<!-- 数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/my_first_batis?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root123" />
</dataSource>
</environment>
</environments>
<!-- 加载映射文件 -->
<mappers>
<mapper resource="User.xml"/>
</mappers>
</configuration>
04.编写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="userMapper">
<!-- id标志映射文件中的sql,即为statement的id -->
<!-- #{id}其中id表示接收输入的参数,参数名就是id -->
<select id="findUserById" parameterType="int" resultType="classfolder.User">
SELECT * from user where id=#{id}
</select>
</mapper>
05.编写bean
package classfolder;
import java.util.Date;
/**
* @author zhaoxiaopeng
* @version 创建时间:2016年11月3日 上午8:33:41
* 类说明
*/
public class User {
//属性名对应数据库表的字段
private int id;
private String name;
private String sex;
private Date birthday;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return name;
}
public void setUsername(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
06.编写操作类
package classfolder;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* @author zhaoxiaopeng
* @version 创建时间:2016年11月3日 上午8:45:55
* 类说明 单纯的mybatis示例
*/
public class MybatisFirst {
public static void main(String[] args) throws IOException {
// mybatis配置文件
String resource = "SqlMapConfig.xml";
// 获得配置文件流
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建会话工厂,传入mybatis的配置文件信息
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 通过会话工厂创建SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 通过SqlSession操作数据库
// 第一个参数:映射文件中的id,即statement的id
// 第二个参数:指定映射文件中parameterType类型的参数
// 结果为映射文件中resultType类型的对象
User user = sqlSession.selectOne("findUserById", 5);
System.out.println(user.getUsername());
// 释放资源
sqlSession.close();
}
}