大概一年半左右没有在CSDN写什么东西!最近还在LKG干着,不是很开心,同组的同事也快要走的七七八八了,我想着也换个工作吧,毕竟对日外包的却没什么前途(日语小白是主因)。。。
听着《いつも何度でも》,写下这些话,在这里强烈建议CSDN的开发组能够加一个背景音效我想是极好的。
就在刚刚我调试好了我的第一个mybatis运用的小程序,在这里写下我自己遇到的一些小问题,困扰了我好几天,简直是煎熬!!!
最近买了本书想着学习SSM框架,主要还是想跳槽的说!先学他个两个月,去同程面试试!在此之前只做过SpringMVC+oracle的项目,这是第一次接触mybatis这么玩意儿,怎么说呢,看了大概一个星期,大概的流程算是有点逼数了,如果你也是小白的话,可以稍微参考一下,划重点(参考。参考。参考。),不对之处可以提建议,不喜勿喷!!!
单纯的mybatis小程序没有带Spring的是下面的流程。
基本需要的文件:
config.xml(mybatis配置,主要是数据库连接用)
实体类(pojo)
实体类对应的mybatis的mapper.xml(用于读取数据库的sql句)
test类的coding流程如下:
首先在config文件的最后配置你的mapper
InputStream通过Resources的getResourceAsStream读取配置文件config.xml(是不是固定写法?)
创建会话工厂sqlSessionFactory来build刚刚新建的InputStream对象
会话工厂打开会话
单条数据就是新建实体类(pojo)对象来获取会话的selectOne方法(参数是<namespace的id,1>)返回值
多条的话就是resultMap来接受返回值
方法的第一参数是实体类mapper,第二参数是1,因为他就是从1开始的(固定思维DB都是从0开始的)
我主要遇到了下面的几个问题:
连不上数据库,是因为JDBC链接中DB的名字都写错了
<property name="url" value="jdbc:mysql://localhost:3306/mysql?characterEncoding=utf-8"/>
如上代码:端口号之后是你DB的名字,对应MySQL中的名字
找不到mapper文件,是因为mapper文件是从cofig文件copy过来的,在最前的申明中没有把cofig改为mapper
<?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是重点
java.lang.AbstractMethodError: Method com/mysql/jdbc/PreparedStatement.isClosed()Z is abstract
如上的test类报错代码,困扰我很久,无解!!!具体不是很清楚,最后换成教程的jar包就OK(如有大神请告知,谢)