发表于: 2017-11-18 22:21:49
1 784
今天完成的事情:
今天下午听老大讲如何快速学习,有了不少自己的认知.
老大提到,任务一就是默认认为做任务的人是具备Java基础语法知识,数据结构知识,计算机组成原理知识,这让我意识到我为什么任务做的感觉有难度,因为我自己只学了一部分的java基础语法,对数据结构,以及计算机的原理还是很薄弱,很多东西都是看的一知半解,打算从现在开始在晚上的时间恶补一下基础知识.
今天经历了N多异常,报错,各种问题,总算写好了最简单的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">
<configuration>
<typeAliases>
<typeAlias alias="Student" type="com.Mybatis.bean.Student"/>
</typeAliases>
<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:///task1?useSSL=false" />
<property name="username" value="root"/>
<property name="password" value="java"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper.xml"/>
</mappers>
</configuration>
操作SQL的配置文件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="mapper">
<select id="getStudent" parameterType="long" resultType="Student">
select * from `t_student` where id = #{id}
</select>
</mapper>
对应表格的bean类 Student
package com.Mybatis.bean;
/**
* @author Arike
* Create_at 2017/11/18 10:48
*/
public class Student {
private long id;
private String name;
private int age;
public Student() {
}
public Student(long id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
public long getId() {
return id;
}
public void setId(long 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;
}
}
对应的数据库
具体的数据库访问类StudentDAO
package com.Mybatis.DAO;
import com.Mybatis.bean.Student;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.Reader;
public class StudentDAO {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
static{
try{
reader = Resources.getResourceAsReader("config.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();
Student s =session.selectOne("mapper.getStudent", 24L);
System.out.println(s);
}
}
先把今天的日报做了,晚上再继续重构代码,并加入更多的CRUD功能.
明天计划的事情:
把删,改,查的功能加上,并且学习动态SQL.
遇到的问题:
遇到的问题有点多,脱离视频有条有理的学习,自己按照自己的思路去查找资料学习,发现学的有点乱.很多资料没有讲解Mybatis提供的第三方API有哪些,也没有用法,只有一个范例,单纯的看范例有一点不好理解,最后对比师兄往期的代码,才能copy出一个模板,但是还是没有很理解.打算在晚上继续学习.
问题①:师兄们的代码都是没有使用maven,在写配置文件路径的时候可以直接以包名为路径,我使用maven不知道怎么设置都不行,只能将配置文件全部丢进resources文件夹里,不过相比起来,放在resources文件夹里还更简单一点.
问题②:用ID查询,忘记了使用long的结尾符L,参数不会自动提升类型,为什么?
应该是Mybatis里对应的是使用的java的包装类,包装类是不存在自动提升类型这个说法的,只有自动拆箱.
收获:
明显的感觉到了脱离视频学习的困难,在写代码的过程中会有很多错误, 因为没有了那个一步一步正确的教学.不过有了错误,自己的记忆更深刻,
禅道:http://task.ptteng.com/zentao/project-burn-414.html
评论