发表于: 2017-09-06 23:34:41
1 903
今天完成的事
步骤17
为什么要用mybatis?
(1) 系统的部分或全部数据来自现有数据库, 出于安全性的考虑, 只为开
发团队提供几条Select SQL(或存储过程) 以获取所需数据, 具体的表
结构不予公开。
(2) 开发规范中要求, 所有牵涉到业务逻辑部分的数据库操作, 必须在数
据库层由存储过程实现(对于金融行业而言, 工商银行、 中国银行和交
通银行, 都在开发规范中严格指定)。
(3) 系统数据处理量巨大, 性能要求极为苛刻, 这通常意味着我们必须由
经过高度优化的SQL语句(或存储过程) 才能达到系统性能设计指标.
Mybatis配置过程
1.添加MySQL连接驱动和Mybatis的组件
左上角File-Project Structure-Modules-Dependencies
2.配置conf.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="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/mybaties" />
<property name="username" value="root" />
<property name="password" value="ab123456" />
</dataSource>
</environment>
</environments>
</configuration>
3.定义表所对应的实体类
package me.gacl.domain;
public class User {
private int id;
private String name;
private int age;
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 toString(){
return "User [id="+id+",name="+name+",age="+age+"]";
}
}
4.定义操作users表的sql映射文件userMapper.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="userMapper">
<select id="getUser" parameterType="int"
resultType="me.gacl.domain.User">
select * from user where id=#{id}
</select>
</mapper>
5.在conf.xml文件中注册userMapper.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="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/mybaties" />
<property name="username" value="root" />
<property name="password" value="ab123456" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="userMapper.xml"/>
</mappers>
</configuration>
6.编写测试代码:执行定义的select语句
package me.gacl.test;
import me.gacl.domain.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class test1 {
public static void main(String[] args) throws IOException
{
String resources = "conf.xml";
InputStream is =test1.class.getClassLoader().getResourceAsStream(resources);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession session = sessionFactory.openSession();
String statement = "userMapper.getUser";
User user = session.selectOne(statement,1);System.out.println(user);
}}
明天计划的事
学习Junit和Spring,复习巩固步骤17的知识点
学习基础语法知识
遇到的问题
1.单词拼写错误,难以及时发现
2.对mybatis连接数据库流程还有不熟练
收获
对着实例手动打了一遍,初步认识了mybatis 的连接过程以及配置文件和映射文件在流程中的作用
评论