最近刚入职公司,公司的环境是SSM,先让我们做点基于SSM的小案例,自己也在边学边做,正好将这个过程分享出来,共同进步。
旨在从最初开始,可以搭建一个完整地项目,以及到后面的原理解析以及和SSM的搭建,今天的第一天只是搭建一个MyBatis的环境,把搭建流程写出来。
项目所需jar包:mybatis-3.2.2.jar,mysql-connector-java-5.1.26.jar
1. 项目目录
2.开发步骤
- 创建Web项目(略)
- 导入jar包(略)
- 创建数据源(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="test">
<environment id="test">
<!-- 事务:JDBC/MANAGED-自己管理去 -->
<transactionManager type="JDBC"/>
<!-- 数据源:POOLED -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/springmvc?charsetEncoding=utf8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!-- 映射文件mapper -->
<mappers>
<mapper resource="cn/shopin/mapper/PersonMapper.xml"/>
</mappers>
</configuration>
4.创建数据库
5.创建实体类person
public class Person implements Serializable{
private int id;
private String name;
private int age;
private String joinDate;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getJoinDate() {
return joinDate;
}
public void setJoinDate(String joinDate) {
this.joinDate = joinDate;
}
6.创建映射文件
<?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.shopin.mapper.PersonMapper">
<select id="find" parameterType="int" resultType="cn.shopin.domain.Person">
select * from
person
</select>
<select id="findById" parameterType="int" resultType="cn.shopin.domain.Person">
select *
from person where id=#{id}
</select>
</mapper>
7.测试
public class MyBatisTest {
/**
* MyBatis连接测试
* @Title: getSessionFactory
* @Description: TODO(....)
* @param @return 设定文件
* @return SqlSessionFactory 返回类型
* @throws
*/
private static SqlSessionFactory getSessionFactory() {
//声明sqlSessionFactory
SqlSessionFactory sqlSessionFactory = null;
//指定资源文件
String resource = "sqlMapConfig.xml";
try {
//得到sqlSessionFactory
sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources
.getResourceAsReader(resource));
} catch (IOException e) {
e.printStackTrace();
}
//返回sqlSessionFactory
return sqlSessionFactory;
}
@Test
public void testFind() {
//得到session
SqlSession session = getSessionFactory().openSession();
//获取person集合
List<Person> personList = session
.selectList("cn.shopin.mapper.PersonMapper.find");
//简单的输出用来验证是否成功
System.out.println(personList.size());
}
@Test
public void testFindById() {
SqlSession session = getSessionFactory().openSession();
Person person = session.selectOne(
"cn.shopin.mapper.PersonMapper.findById", 1);
System.out.println(person);
}