发表于: 2018-02-03 20:57:39
2 640
今天做了什么:
线下第一天,重新看了之前做过的部分。
在师兄的指导下,把maven配置里的镜像下载地址里添加了阿里云。
开始学习Mybatis连接数据库,看了一遍师兄推荐的博文,不甚懂。
1.全局配置文件和映射文件分别设置
2.sqlSessionFactory->创建sqlSession
3.sqlSession->crud
4.Excutor->执行
5.mappedStatement
第一步配置环境,下载jar包,导入
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
全局配置文件 的<mappers>标签用来配置映射文件
映射文件可以放到文件夹中,针对不同的操作对象,编写不同的xml文件。
然后新建一个pojo ( plain ordinary java object)。新建操作的对象表。
创建映射配置的xml文件,有很多语法。
<select>
标签:用于执行数据库查询的,所有关于查询的都使用该标签。- id属性:标识映射文件中的sql,将sql语句封装到mappedStatement对象中,即statement的id,下面执行数据库的时候需要用到这个id。
- #{}:表示一个占位符,用来接收输入参数的。
- #{id}:id标识接收输入的参数,参数名称就是id,如果输入参数是简单类型,那么#{}中的参数名可以任意,可以value或者其他名称。
- parameterType:指定输入参数的类型,这个要和数据库中的保持一致。
- resultType:指定输出结果的类型,即查询结果所映射的java对象。
- resultType:这里虽然是查询多条记录,但是resultType指定的就是单条记录所映射的java对象类型。
- ${}:表示拼接sql串,将接收到的参数的内容不加任何的修饰拼接在sql中,${}中只能使用value,但是使用${}来拼接sql,可能会引起sql注入,所以不建议使用这种方法。
- <insert>标签:用于执行数据库查询的,所有关于查询的都使用该标签。
- parameterType:要传入一个具体的pojo(包括用户信息)
- #{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis通过OGNL获取对象的属性值。
- <selectKey>标签:用来返回插入数据的主键的,实际中如果有获得主键的需要就可以使用它。
- select last_insert_id():是sql函数,表示得到刚刚insert进去记录的主键值,只适用于自增主键。
- keyProperty:表示将查询到主键值设置到上面parameterType指定的对象的哪个属性。
- order:表示select last_insert_id()的执行顺序,是相对于insert语句来说的。
- resultType:表示select last_insert_id()的结果类型。
自己写了一部分,还有部分没看懂。
同时还在看JDBC的DAO层规范。
明天计划做什么:
把mybatis和JDBC看完吧。
遇到的问题:
namespace不知道该怎么填,看了两篇说法不太一样。
师兄说,在没有动态代理的时候不需要写完全限定名,能够一一对应就行。
收获:
线下第一天,师兄们都很友善,当面交流可以学到的更多更全面。
评论