1、开发步骤
创建java工程
加入jar包(依赖包、驱动包)
在src下面建立默认的配置文件SqlMapConfig.xml
创建PO对象(实体类(javabean)) user.java
创建映射文件 User.xml
具体操作
2、导入所需要的jar包
mybatis-3.2.2.jar
asm-3.3.1.jar
cglib-2.2.2.jar
commons-logging-1.1.1.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jarmysql-connector-java-5.1.10-bin.jar
junit-4.9.jar
3、、配置文件 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>
<!-- 环境配置
default="随便取名字"
<environment id="可以与上面的同名或者随便取名">
-->
<environments default="development">
<environment id="development">
<!-- 事务管理
事务:有JDBC/MANAGED
-->
<transactionManager type="JDBC"/>
<!-- 数据源 :有UNPOOLED(不用连接池)/POOLED/JNDI(一般远程操作的时候用)-->
<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>
<!-- 映射文件的位置 -->
<mappers>
<mapper resource="cn/mybatis/domain/User.xml"/>
</mappers>
</configuration>
4、实体类user.java
package cn.mybatis.domain;
public class User {
private String id;
private String name;
private String address;
public String getId() {
System.out.println("调用get方法获取ID");
return id;
}
public void setId(String id) {
System.out.println("利用set方法设置id");
this.id = id;
}
public String getName() {
System.out.println("调用get方法获取Name");
return name;
}
public void setName(String name) {
System.out.println("利用set方法设置name");
this.name = name;
}
public String getAddress() {
System.out.println("调用get方法获取Address");
return address;
}
public void setAddress(String address) {
System.out.println("利用set方法设置ddres");
this.address = address;
}
@Override
public String toString() {
return "id = "+id+"name = "+ name +" address" + address;
}
}
5、、映射文件 User.xml
与hibernate中的映射文件不同,这里配置的是sql语句,在hibernate中配置的是实体属性与数据库中的字段的对应关系
<?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.mybatis.domain.User">
命名空间 唯一的
<!-- 根据id查询 user id:当前sql语句的唯一标识 parameterType:接收的参数类型(指的是java中的类型) 用完整的包名+类型 resultType :结果类型(返回值的类型)-->
<select id="selectUserById" parameterType="string" resultType="cn.mybatis.domain.User">
select * from user where id = #{id}
</select>
<!-- 查询所有的user -->
<select id="selectAllUser" resultType="cn.mybatis.domain.User">
select id,name,address from user
</select>
</mapper>
5、建立测试类
import java.io.InputStream;
import java.util.List;
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 org.junit.Test;
import cn.mybatis.domain.User;
public class MyBatis {
@Test
public void test()throws Exception{
String resource = "sqlMapConfig.xml";
InputStream input = Resources.getResourceAsStream(resource);
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(input);
//创建SqlSessionFactory实例。没有指定要用到的
//利用名称空间 + sql语句的id (在使用sql语句时候注意)
SqlSession session = sf.openSession();
User user = session.selectOne("cn.mybatis.domain.User.selectUserById", "01");//查询id为01的user
System.out.println(user);
SqlSession session = sf.openSession();
List<User> users = session.selectList("cn.mybatis.domain.User.selectAllUser");//查询所有user
for(User u : users){
System.out.println(u);
}
}
}