创建数据库
创建数据库mybatis
创建表
orderdetail
orders
items
user
下载jar包
访问https://github.com/mybatis/,点击mybatis-3,点击releases,找到mybatis-3.2.7,点击mybatis-3.2.7.zip是下载jar包,点击Source code (zip)是下载源码。
之后将mybatis-3.2.7.zip解压
- lib:里边是所依赖的jar包
- mybatis-3.2.7.jar:核心jar包
- mybatis-3.2.7.pdf:说明文档
导入jar包
lib文件里所依赖的jar包和核心jar包,还有一个数据库驱动包。
编写代码
建立一个user类
public class User {
private int id;
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
private String address;// 地址
//get和set方法省略。。。
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", sex=" + sex
+ ", birthday=" + birthday + ", address=" + address + "]";
}
}
建立一个接口。mybatis提出了mapper接口,相当于dao接口,mapper接口的命名方式建立:表名Mapper
public interface UserMapper {
//根据用户id查询用户信息
public User findUserById(int id) throws Exception;
}
建立一个映射文件UserMapper.xml。文件的命名方式建议:表名Mapper.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.itcast.mybatis.mapper.UserMapper">
<select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
SELECT * FROM USER WHERE id= #{id}
</select>
</mapper>
要求其namespace的名称为接口的全限定名,其目的是将mapper.xml和mapper.java进行关联。
id名称就是接口中方法的名称。parameterType和接口中方法输入参数类型一致,resultType和接口中方法的返回值的类型一样。
建立一个SqlMapConfig.xml
<!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="157326"/>
</dataSource>
</environment>
</environments>
<mappers>
<package name="cn.itcast.mybatis.mapper"/>
</mappers>
</configuration>
environments 元素在于spring整合后将被删除。
transactionManager type=”JDBC”:使用JDBC管理事务
dataSource:数据库连接池
mappers:加载mapper.xml文件。这种配置方式,会自动扫描包下边的mapper接口,要求mapper.xml和mapper.java同名并且在一个目录中。
编写测试类
public class UserMapperTest {
// 会话工厂
private SqlSessionFactory sqlSessionFactory;
// 创建工厂
@Before
public void init() throws IOException {
// 配置文件(SqlMapConfig.xml)
String resource = "SqlMapConfig.xml";
// 加载配置文件到输入 流
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建会话工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void testFindUserById() throws Exception {
SqlSession sqlSession = sqlSessionFactory.openSession();
// 创建代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.findUserById(1);
System.out.println(user);
}
}