昨天完成了jdbctemplate的增删改查的操作
接下来就是mybatis对数据库的操作增删改查的操作
1.准备工作关于mybatis的一些知识
MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
mybatis三层结构
(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑
A------->今天主要是开始熟悉mybatis的创建流程,还有尝试连接数据库
准备工作就是添加需要的jar包
创建链接的配置映射
查询语句的创建
创建一个User类
开始就是写了一个查询的类接口
接下来就是连接的加载
最后的测试查询写方法类的实现
输出的结果
开始完成和熟悉mybatis的知识,实现了一个查询的功能
今天的mybatis的熟悉就是开始了,感觉mybatis的简化了很多的java代码,没有以前那么多的 java的而连接,还有查询的代码,感觉比较精简
今天完成:对mybatis的熟悉,还有它的结构的熟悉,还有映射是怎么回事,那个去配置哪里调用的具体实现,昨天试了尝试一下了解,写了一个demo没有成功,就是对它的结构的不熟悉,感觉要精简的很多的代码
明天的计划:完成mybatis的增删改查非的全部功能在好好总结一下,jdbctemple和mybatis的差别
遇到的困难:
1.主要是对mybatis的结构不熟悉
2.查询回来的出现乱码(这个解决了)
就是在建立链接数据库的时候加上对字符的要求限定 ----->乱码就解决
3.那个mappers 开始没有加上一直报错----->没有加载SQL查询的语句
.
收获:感觉mybatis的精简度不错,还有对一下细节注意到了,尤其是映射和XML的配置,这个可能就是BUG的关键问题的地方
最后还有昨天的一些问题说明:
1.构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。(百度查了--->主要是new. 因为插入的时候 要 new user() 所以才会从新的构造函数)------>这个理解了
2.spring注入的方式 (4种)
第一种方法:根据索引赋值,索引都是以0开头的:
<bean
id="memberBean" class="www.csdn.spring01.constructor.MemberBean">
<constructor-arg index="0" value="刘晓刚" />
<constructor-arg index="1" value="3500" />
<constructor-arg index="2" ref="dept"/>
<constructor-arg index="3" value="男" />
第二种方法是根据所属类型传值
这种方法基本上不怎么适用,因为一个类里可以有好几个相同基本类型的变量,很容易就混淆值传给哪一个参数了所以做好不要使用这种方法:
<constructor-arg type="java.lang.String" value="刘晓刚"
<constructor-arg type="java.lang.Double" value="3500" />
<constructor-arg type="www.csdn.spring01.constructor.Dept" ref="dept"/>
<constructor-arg type="java.lang.String" value="男" />
第三种方法:根据参数的名字传值:(推荐用法)
在这几种方法里我感觉这种方法是最实用的,他是根据名字来传值的,所以基本上只要名字对了,这个值就可以获取到
<constructor-arg name="name" value="刘晓刚" />
<constructor-arg name="salary" value="3500" />
<constructor-arg name="dept" ref="dept"/>
<constructor-arg name="sex" value="男" />
第四种方法:直接传值
直接给参数赋值,这种方法也是根据顺序排的,所以一旦调换位置的话,就会出现bug,这种方法已经很原始了
<constructor-arg value="刘晓刚" />
<constructor-arg value="3500" />
<constructor-arg ref="dept"/>
<constructor-arg value="男" />
</bean>
<bean id="dept" class="www.csdn.spring01.constructor.Dept" >
<property name="dname" value="北航"/>
<property name="deptno" value="00001"/>
</bean>S
我觉得一般我用的是key ----values 这种
3.还有比较重要的是ToString方法的实现(后面的query<要用到>)
这个可能是我理解错了,是哪个打印的时候可以不用那么麻烦的一个一个写,就可以 toSTring这样方便一些(对比了一下 toString)
不然就是写很多的像这个样子
荆轲刺秦王------>加油 坚持