发表于: 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


返回列表 返回列表
评论

    分享到