建数据库建表
新建一个数据库mybatis,创建一张表tbl_emoloyee.
create table tbl_employee(
id int(11) PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(255),
gender CHAR(1),
email VARCHAR(255)
)
准备工作
- 新建一个java项目MyBatis_01_hello,
- 在src下新建一个bean包,在包中创建Employee。
public class Employee {
private Integer id;
private String lastName;
private String email;
private String gender;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Employee [id=" + id + ", lastName=" + lastName + ", email="
+ email + ", gender=" + gender + "]";
}
}
- 创建lib包,导入3个jar包:log4j.jar,mybatis-3.4.1.jar,mysql-connector-java-5.1.37-bin.jar.
- 创建conf文件夹,放置映射文件。
- 为了更清楚的查看到sql的执行,引入了log4j.jar,与此同时还需要引入log4j.xml文件(放置到conf下)。
- 至此准备工作完成。
第一个mybatis项目
1.在conf文件下新建一个全局配置文件MyBatis-config.xml,在该配置文件中可以进行数据库连接,获取数据源。相关代码在mybatis文档中有给出。
<?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">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(MyBatis-config.xml)中-->
<mapper resource="EmployeeMapper.xml"/>
</mappers>
</configuration>
- 在conf文件夹下新建与tbl_employee表对应的映射文件EmployeeMapper.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="com.fzl.mybatis.EmployeeMapper">
<!--
namespace:名称空间;指定为接口的全类名
id:唯一标识
resultType:返回值类型
#{id}:从传递过来的参数中取出id值
public Employee getEmpById(Integer id);
-->
<select id="getEmpById" resultType="com.fzl.mybatis.bean.Employee">
select id,last_name lastName,email,gender from tbl_employee where id = #{id}
</select>
</mapper>
3.将sql映射文件(EmployeeMapper.xml)注册在全局配置文件(MyBatis-config.xml中.
<!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(MyBatis-config.xml)中-->
<mapper resource="EmployeeMapper.xml"/>
</mappers>
4.新建测试类,测试、
1)根据全局配置文件得到SqlSessionFactory;
2)使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查,一个sqlSession就是代表和数据库的一次会话,用完关闭
3)使用sql的唯一标志来告诉MyBatis执行那个sql,sql都保存在sql映射文件中的。
/**
* 1.根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象,有数据源一些运行环境信息
* 2.sql映射文件:配置了每一个sql,以及sql的封装规则等
* 3.将sql映射文件注册在全局配置文件中
* 4.写代码:
* 1)根据全局配置文件得到SqlSessionFactory;
* 2)使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查,一个sqlSession就是代表和数据库的一次会话,用完关闭
* 3)使用sql的唯一标志来告诉MyBatis执行那个sql,sql都保存在sql映射文件中的
*
* @throws IOException
*/
@Test
public void test() throws IOException {
String resource = "MyBatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
try{
Employee employee = sqlSession.selectOne("com.fzl.mybatis.EmployeeMapper.getEmpById", 1);
System.out.println(employee);
}finally {
sqlSession.close();
}
}
}
- 测试运行