发表于: 2017-08-29 23:01:26

3 1115


一、今日完成

1.上午武汉分院进行全面卫生清扫消毒,学员放假半天;

2.学习继承(Inheritance),了解类、超类、子类、Object类这四个知识点相关的概念;根据老大的指点,枚举类和反射这类功能强悍、使用复杂的特性,暂时放弃了。

3.花了半小时学习《GUIDE TO Unix AND Linux》中一个基础章节,学习系统管理员、用户标识和口令、登录、注销、shell提示、大小写区分等知点,以及passwd、last和root等命令。虽然这一章涉及的知识点比较少且简单,但是作者花了大量篇幅讲解Unix的核心理念,甚至详细谈到某些设置和用法的起源与发展,力图把Unix的思维方式移植到读者的大脑里。窃以为每天能够花半小时时间仔细学习这本书,不仅仅能够逐步完成Unix/linux的入门,还可以学习到强有力的如何学习知识和思考问题的技能。

4.学习mybatis

1)ORM表示对象-关系映射,它尝试在应用程序端处理持久化数据;位于业务层和数据库之间,它的作用是把对持久化对象的保存、修改、删除等操作转换成对数据库的操作。mybatis是一种“半自动化”的ORM的实现,使用简单的XML或注解进行配置和原始映射,以将接口和Java 的POJO映射成数据库中的记录。

2)练习mybatis的简单应用

i.在src\main\com.fkit\domain目录下新建一个POJO类

public class User implements Serializable{
// 用户标识
  private Integer id;
// 用户姓名
  private String name;
// 用户性别
  private String sex;
// 用户年龄
  private Integer age;

// 无参数构造器
  public User() {
super();
}
// 有参数构造器
  public User( String name, String sex, Integer age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
// setter和getter方法
  public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}

@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", sex=" + sex + ", age="
           + age + "]";
}

}

ii.在src\main\com.fkit\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="org.fkit.mapper.UserMapper">

 <insert id="save" parameterType="org.fkit.domain.User" useGeneratedKeys="true">
INSERT INTO TB_USER(name,sex,age)
VALUES(#{name},#{sex},#{age})
</insert>
</mapper>

<mapper namespace="…">为这个mapper指定唯一的namespace,该值习惯设置成包名+sql映射文件名。

在<insert>标签中编入sql语句,#{name}表示取参数对象name属性值。

iii.在src\main\com.fkit\resource目录下,新建mybatis配置文件mybatis-config.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">
 <!--  XML 配置文件包含对 MyBatis 系统的核心设置 -->
<configuration
<environments default="mysql">
<!-- 环境配置,即连接的数据库。 -->
   <environment id="mysql">
<!--  指定事务管理类型,type="JDBC"指直接简单使用了JDBC的提交和回滚设置 -->
     <transactionManager type="JDBC"/>
<!--  dataSource指数据源配置,POOLED是JDBC连接对象的数据源连接池的实现。 -->
     <dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/task02"/>
<property name="username" value="acer"/>
<property name="password" value="xyz"/>
</dataSource>
</environment>
</environments>
 <mappers>
<mapper resource="org/fkit/mapper/UserMapper.xml"/>
</mappers>
</configuration>

iv.在src\test目录下创建一个测试类

public class MyBatisTest {

public static void main(String[] args) throws Exception {
// 读取mybatis-config.xml文件
     InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
// 初始化mybatis,创建SqlSessionFactory类的实例
     SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(inputStream);
// 创建Session实例
     SqlSession session = sqlSessionFactory.openSession();
// 创建User对象
     User user = new User("admin", "男", 26);
// 插入数据
     session.insert("org.fkit.mapper.UserMapper.save", user);
// 提交事务
     session.commit();
// 关闭Session
     session.close();
}

}

运行main方法向表TB_USER中添加一条记录。


二、明日计划

1.学习SqlSessionFactory对象和SqlSession对象用法,以及mybatis配置文件和映射文件的详情

2.学习泛型相关知识;

3.复习原始JDBC的用法。


三、遇到的问题

任务1中学习使用Spring JDBC,当时不了解数据源的含义,今天看到相关的知识点,把它贴在这里:

数据源负责维持一个数据库连接池。当程序创建数据源实例时,系统会一次性创建多个数据库连接,并把它们保存在连接池中。当需要进行数据库访问时,无需重新获得数据库连接,直接从连接池取一个空闲的数据库连接;当访问结束,无需关闭数据库连接,将数据库连接归还给连接池即可。这样避免频繁获取连接数据库和关闭数据库,相比传统JDBC,提高了性能和资源占用。


四、收获

如上。



返回列表 返回列表
评论

    分享到