发表于: 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,提高了性能和资源占用。
四、收获
如上。
评论