到此,前期的开发环境准备工作全部完成。mybatis 搭建环境开始
下载资源包地址:https://github.com/mybatis/mybatis-3/releases
1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:
2、添加相应的jar包
【mybatis】
mybatis-3.1.1.jar
【MYSQL驱动包】
mysql-connector-java-5.1.7-bin.jar
3、创建数据库和表,针对MySQL数据库
SQL脚本如
到此,前期的开发环境准备工作全部完成。
2.2、使用MyBatis查询表中的数据
1、添加Mybatis的配置文件mybatis-config.xml ---mybatis主配置文件
在src目录下创建一个mybatis-config.xml文件,如下图所示:
mybatis-config.xml文件中的内容如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 4 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 5 <configuration> 6 7 <environments default="development"> 8 <!-- 指定使用哪个environment --> 9 <environment id="development"> 10 <!-- 事物管理器 --> 11 <transactionManager type="JDBC" /> 12 <!-- 连接池 POOLED是mybatis提交的连接池 --> 13 <dataSource type="POOLED"> 14 <property name="driver" value="com.mysql.jdbc.Driver" /> 15 <property name="url" value="jdbc:mysql:///1708_mybatis" /> 16 <property name="username" value="root" /> 17 <property name="password" value="root" /> 18 </dataSource> 19 </environment> 20 </environments> 21 <!-- Mapper文件 --> 22 <mappers> 23 <mapper resource="com/pxf/mapper/IUserDao.xml" /> 24 </mappers> 25 </configuration>
2、定义表所对应的实体类,如下图所示:
User类的代码如下:
package com.pxf.entity;
public class User {
private Integer id;
private String name;
private String password;
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 String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User() {
super();
}
public User(Integer id, String name, String password) {
super();
this.id = id;
this.name = name;
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", password=" + password + "]";
}
}
3、定义一个接口,IUserDao
创建一个com.pxf.dao包,专门用于存放sql映射文件,在包中创建一个UserDao文件,如下图所示:
package com.pxf.dao;
import com.pxf.entity.User;
public interface IUserDao {
public User getUserById(Integer id);
}
4、定义操作t_user表的sql映射文件IUserDao.xml
创建一个com.pxf.mapper包,专门用于存放sql映射文件,在包中创建一个UserDao.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"> <!--namespace指接口的全类名 --> <mapper namespace="com.pxf.dao.IUserDao"> <!-- id:方法名称 id属性值必须是唯一 parameterType:查询的时候使用的参数范围 resultType:查询返回的结果集类型 --> <select id="getUserById" parameterType="java.lang.Integer" resultType="com.pxf.entity.User"> select * from t_user where id = #{id} </select> </mapper>
5、编写测试代码:执行定义的select语句
先测试环境,看能不能生成sqlSession
package com.qf.dao; import static org.junit.Assert.*; 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; import org.junit.Test; public class SqlSessionFactoryTest { @Test public void testSqlSessionFactory() { // 1.指定MyBatis的配置文件 String resource = "mybatis-config.xml"; // 2.把配置文件读成要给输入流 try { InputStream inputStream = Resources.getResourceAsStream(resource); // 3.创建SqlSessionFactoryBuilder用来创建工厂 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); // 4.构建工厂 SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream); // 5.通过SqlSessionFactory创建sqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); System.out.println(sqlSession); } catch (IOException e) { e.printStackTrace(); } } }
亲测可以生成。
测试代码:
package com.qf.dao; import static org.junit.Assert.*; 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; import org.junit.Before; import org.junit.Test; import com.qf.entity.User; public class UserDaoTest { @Test public void testGetUserById() { // 1.指定MyBatis配置文件 String resource = "mybatis-config.xml"; InputStream ips = null; try { // 2.把配置文件转成流 // InputStream ips = this.getClass().getClassLoader().getResourceAsStream(resource); ips = Resources.getResourceAsStream(resource); // 3.通过SqlSessionFactoryBuilde构架工厂 SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); // 4.构建工厂 SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(ips); // 5.获取SqlSession SqlSession sqlSession = sqlSessionFactory.openSession(); // 6.获取接口 IUserDao userDao = sqlSession.getMapper(IUserDao.class); User user = userDao.getUserById(9); System.out.println(user); sqlSession.close(); } catch (IOException e) { e.printStackTrace(); }finally{ if(ips != null){ try { ips.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
环境搭建总结:
2.搭建环境
1)导入jra包
2)配置文件
a)mybatis-config.xml
1)数据库的链接参数
2)连接池
1)POOLED:是MyBatis提供的一个连接池
3)事务管理器
1)用jdbc的事务管理器
4)Mapper文件的路径
2)Mapper文件
1)命名:和接口保持一致
2)位置:专门建一个mapper包用来存放
3)内容
a)<mapper>
1)namespace:接口的全类名
2)<select>
1)id:方法名称
2)resultType:返回类型 返回的是集合
3)parameterType:方法查询使用的参数类型
3)使用
1)指定MyBatis的配置文件,转成输入流
2)创建SqlSessionFactoryBuilder用来创建SqlSessionFactory
3)用SqlSessionFactory创建SqlSession
4)参数数据库
新手写帖,有什么不好的地方希望大家指出。