发表于: 2017-12-28 20:39:04

1 624


今天做的事情:

昨天有点事,今天身体状态也不是很好,吃了点药,算是把mybatis最基本的crud大概搞懂了。一些最基本的操作(下载、配置什么的)都是在how2java上面学的,不过它上面教的不是很多,想要自己精进的话还是需要自己多敲代码,添加功能。因为how2java上面教的是普通mybatis工程,我自己就尝试创建了一下Maven风格的,因为没来得及学junit和log4j,所以很多功能都不全。

结构如下所示:

这里特别要注意的是,maven项目自带的java目录要右键Mark为Sources Root,新建用来存放xml文件的Resources文件夹要Mark为Resources Root,不然运行时会抛出异常。(Maven项目的jar包在pom.xml里面加,这里我加上了mysql的驱动包和mybatis的核心包,和暂时没有用到的几个日志依赖包)

1、首先  在mysql中建立how2java数据库,再建立名为“category_”的表。表的结构很简单,一个自增long的主键字段id,一个varchar(15)的name:

2、在java目录下创建com.xiuzhenyuan.pojo.Category类,其实例变量和表一一对应,然后补上set和get方法。另外,为了方便观测后续方法,改写了toString方法:

3、配置全局配置mybatis-config.xml文件:

名词解释:

environments default: 默认环境变量  没啥好说的 和spring整合后就没了

transactionManager :使用JDBC事务管理。MyBatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象(输出映射)。 

driver: 需要选择驱动,选择我们加进来的那个jar包

url: 可以理解为地址一样的东西吧,其书写格式在mysql的用户手册中可以查到

username ; 用户名  默认root  超级用户

password :密码 我的是123456

mapper resource : 从Mark为Resources Root的文件夹开始写,主要分隔用的是“/”,不是win系统的“\”

<typeAliases> :自动扫描标签,会自动扫描所选包,下面我就可以不用写全称,直接写Category了。


4.配置Category.xml:

名词解释:

namespace : 命名空间,好比一个类,下面的全是它的内容

id : 好比是身份证一样的东西 标识这个select标签,后面namespacea+"."+id这个String对象会作为一个参数被注入方法中。

parameterType : sql语句中用到占位符的对象的类型 和mysql表中相对应  不过 要注意 parameterType是字面量,而且是java里面类名,比如这里是long而不是对应的bigint

resultType: 需要映射产生的java对象类名,因为启动了自动扫描,我这里不必要写全名

#{ }  占位符,中间表示要接收的参数 机制有点类似于C的带参宏函数,如果为简单类型,大括号中间的可以随便写,但是不能为空。


5、写测试类“Mybatis”,今天没有学到Junit,就拿main方法跑吧,以查找功能示意:

crud操作中,就查询操作不需要session.commit(),因为读锁的限制很少,不需要提交事务。

简单的步骤概括下:

1. 注入配置文件文件名的字面量

2. 取得输入流

3. 构建会话工厂SqlSessionFactory

4. 取得会话包装类SqlSession

5. 往特定的方法中注入参数,取出被映射的对象


这里特别要注意的一点 selectOne这个方法两个参数,第一个是上文说的namespacea+"."+id这个String对象,

第二个是指定和映射文件中所匹配的parameterType类型的参数(就是占位符那个),注意类型一定要匹配,不能是1,必须是long类型的 1L !


6、输出结果:

id: 1 name: category1

因为我改写了被映射对象Category的toString方法。

可以看到,这个结果是和在mysql中输入sql语句

select * from   category_  WHERE id = 1

的效果并无二致的。测试到此算是成功吧。


明天要做的事情:学习编写DAO接口和junit、log4j


今天的收获:熟悉了idea软件,熟悉了mybatis最基本的crud操作


返回列表 返回列表
评论

    分享到