发表于: 2018-05-20 17:24:19

1 1304


实习最后是凉了,还是自己没搞清楚流程,以为谈了实习时间,实习方式,薪资什么的就是人家已经让你过了,其实也只是面试的一个步骤罢了。

也不准备再找面试了,回来专心学java。

今天完成的事情:

1、尝试使用了mybatis,并使用mybatis实现了简单的查询

2、了解了Junit的简单用法


详细内容如下:

17、编写DAO,分别JdbcTemplate和Mybatis连接数据库,注意使用JDBCTemplate的时候分离Interface和Imple,使用Mybatis的时候注意理解为什么不需要Impl,注意遵守命名规范

暂时先用了一下mybatis,参考了下面几篇文章:

深入浅出MyBatis-快速入门 - CSDN博客(对于mybatis的介绍和原理部分讲的很清楚)

使用maven创建一个简单的MyBatis例子 - 简书(作者使用的是idea+maven+mybatis,教程写的非常详细,跟着教程一步步做就能做出一个demo了)

MyBatis Java API_w3cschool(可以看成是一个文档吧)

我是跟着第二个参考资料一步步做的,但是作者的demo中并没有用到接口去做DAO,而是直接使用了查询语句,但是结合一下第一篇资料就可以用接口去做了。


中间遇到几个小问题,简单记录下:

1.要把文件夹变成资源文件夹可以通过 右键-> Make Directory As -> Resources Root,否则你是无法添加package的

2.最后控制台会报一个关于serverTimezone的错误,大概是因为时区的问题,需要在jdbc.properties文件中的url后面添加一些参数,如下

url=jdbc:mysql://localhost:3306/it?serverTimezone=CTT&\
 useUnicode=true&useSSL=false&characterEncoding=utf-8&allowMultiQueries=true



下面将的就是跟着教程做完之后,如何用接口去写:

1)首先我们先写出自己的接口(这里只是一个简单的查询):

package com.sample.mybatis;
import java.util.List;

public interface StudentDAO {
    public List<Student> getAllStudents();
}


2)然后我们到自己的配置文件中进行配置,(我这里是Student.xml,资料中是User.xml),

     注意这里resultType是Student而不是一个集合,Student是我写的学生类,资料中相应的就是User类

     namespace:就是你的接口所在的路径

<?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="com.sample.mybatis.StudentDAO">
   <select id="getAllStudents" resultType="Student">
       SELECT * FROM student
   </select>
</mapper>


3)到这一步其实都已经写好了,接下来我们直接使用它就行了,这里我直接在主类中进行了测试

     其余的都与资料中的代码相同,只是操作数据库的方式有了变化

    关键代码:

StudentDAO stuDao = session.getMapper(StudentDAO.class);
List<Student> stus = stuDao.getAllStudents();

这里发现我们并没有写DAO接口的实现代码,而是通过了一个getMapper函数生成的对象来实现操作数据库。

个人理解:mybatis利用我们写的接口和我们的配置文件中的<select></select>这些对象自动的帮我们实现了接口中所定义的功能,完成对数据库的操作


最后输出结果:

for(Student stu : stus ){
    System.out.print(stu.getName()+", ");
}


增删改查放到明天再完善,先了解了一下junit的简单用法:

1)先写了一个calculate类,里面定义了一个add方法:

package com.sample.mybatis;

public class Calculate {
   public int add(int a,int b){
       return a+b;
   }
}


2)然后在这个类文件中用快捷键 Ctrl+shift+T就可以创建一个test,也可以右键(是在代码编辑界面右键)->Goto->test


3)勾选你要测试的方法生成测试文件,自己再编写具体的测试代码即可:

package com.sample.mybatis;

import org.junit.Test;

import static org.junit.Assert.*;

public class CalculateTest {
private static Calculate cal = new Calculate();
   @Test
   public void addTest() {
       int sum = cal.add(2,4);
       assertEquals(6, sum);
   }
}



返回列表 返回列表
评论

    分享到