发表于: 2017-09-06 23:34:41

1 902


今天完成的事

步骤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);

}}


明天计划的事

学习JunitSpring复习巩固步骤17的知识点

学习基础语法知识

遇到的问题

1.单词拼写错误,难以及时发现

2.mybatis连接数据库流程还有不熟练

收获

对着实例手动打了一遍,初步认识了mybatis 的连接过程以及配置文件和映射文件在流程中的作用



返回列表 返回列表
评论

    分享到