什么是mybatis?
MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.
那么接下来就让我们来创建一个mybatis应用的简单实例(此处使用的数据库为mysql数据库):
首先,新建一个名为mybatis的数据库
在该数据库中创建一张t_user表,并插入一条数据
在数据方面的准备我们就做好了,下面就来进行具体的配置
新建一个普通的web工程,在src目录下创建一个配置文件configuration.xml,在工程下新建model和test包,并在model包下创建与数据库对应的java class和映射文件,最终的目录结构如下:
创建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>
<typeAliases>
<typeAlias alias="User" type="cn.bdyl.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://127.0.0.1:3306/mybatis" />
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/bdyl/model/User.xml"/>
</mappers>
</configuration>
创建User类:
package cn.bdyl.model;
public class User {
private Integer id;
private String name;
private char sex;
private String address;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
同时建立这个User类的映射文件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="cn.bdyl.model.UserMapper">
<select id="selectUserById" parameterType="int" resultType="User">
select * from t_user where id = #{id}
</select>
</mapper>
下面对配置文件进行解释:
1)configuration.xml文件中的typeAliases标签是为User类指定别名,这样在User.xml配置文件中的resultType就不用指定User类的全路径,只需指定别名就可以找到
2)configuration.xml文件中的mapper标签映射的是User.xml映射文件。
3) 在User.xml 文件里面 主要是定义各种SQL 语句,以及这些语句的参数,以及要返回的类型等.
下面进行测试:
在test包下新建一个测试类Test
package cn.bdyl.test;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import cn.bdyl.model.User;
public class Test {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static{
try {
reader = Resources.getResourceAsReader("Configuration.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSession(){
return sqlSessionFactory;
}
public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();
try {
User user = session.selectOne("cn.bdyl.model.UserMapper.selectUserById",1);
System.out.println(user.getName()+"--"+user.getAddress()+"--"+user.getSex());
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session != null){
session.close();
}
}
}
}
输出最终结果:
得到该结果,说明你的mybatis运行环境搭建成功。