mybatis

mybatis:

为什么要有mybatis呢?我们之前手写数据层,连接关闭数据库太过于平凡,就算是用了连接池,我们还要单独写一些语句如:

public Productitem updateProductByid(String pid)throws SQLException {

QueryRunner runner =new QueryRunner(DataSourceUtils.getDataSource());

String sql="select * from product where pid=?";

Productitem pro= runner.query(sql,new BeanHandler(Productitem.class),pid);

return pro;

}

所以mybatis省了我们不少的事情。

现在配置一下mybatis,我将上面的第一个springmvc项目拿过来配。

在web.xml将context-param里的applicationContext.xml换成spring_*.xml

contextConfigLocation

classpath:spring_*.xml

然后下config文件下面建3个.xml文件和一个properties文件

spring_dao.xml:

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xmlns:context="http://www.springframework.org/schema/context"

      xmlns:mvc="http://www.springframework.org/schema/mvc"

      xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/mvc

      http://www.springframework.org/schema/mvc/spring-mvc.xsd">


   


   


       


       


   

spring_mybatis.xml:


       


springmvc.xml:

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"

      xmlns:context="http://www.springframework.org/schema/context"

      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">






db.properties:

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8

jdbc.username=数据库账号

jdbc.password=数据库密码

##?useUnicode=true&characterEncoding=utf-8

注意:上面的jdbc.ur的test是数据库名字。

然后启动:idea;

接着当我在网页上输入项目地址的时候,却报了500错误,说是找不到mapper。我想,应该是扫描不到mapper的xml文件。然后,我去target这个目录里面找果然没有mapper的xml文件。

然后我去查了一下spring_dao.xml文件,有没有扫描到。

于是我,百度了一下,原来是pom.xml文件没有去配置扫描。

于是我就给pom.xml加上下面这句话:

-->

src/main


**/*.xml


src/main/config

**/*.yml

**/*.properties

**/*.xml

然后输入http://localhost:8080/maven_spring_springmvc_war_exploded/stringfirst

确实出现了json数据


mybatis_第1张图片

因为想写,然后重现问题,但是当我删掉这句话,然后又重新启动时:

竟然没有错误。。。。

我真的搞不懂为什么,看着跟之前一样的的代码,却运行不一样的结果,我迷了。

难道程序也有记忆能力?

哪位大佬解释一下?

然后我将,target里面的mapper.xml文件删了,还是一样的结果。于是。我就整个的吧target删了。还是可以运行。然后我换了个浏览器,还是可以运行处结果


mybatis_第2张图片

我放弃了,哪位大佬知道,告知一下。谢了谢了。

mybatis的配置还是蛮好配的,用起来很省事。但是我看着国外都用的Hibernate。我也没用过Hibernate,也不太清楚。

Mybatis为什么能实现xml文件就能访问数据库这些事情呢?就是因为它封装了jdbc的一系列访问数据库的操作,然后,映射到xml文件。只要你在xml文件写一些sql语句就行。

id:是接口的方法名;

resultType:是返回的实体类;

parameterType:是输入进的类型。


总结:MyBatis框架的优点:

1)与JDBC相比,减少了50%以上的代码量。

2)MyBatis是最简单的持久化框架,小巧并且简单易学。

3)MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。

4)提供XML标签,支持编写动态SQL语句。

5)提供映射标签,支持对象与数据库的ORM字段关系映射。

MyBatis框架的缺点:

1)SQL语句的编写工作量较大,对开发人员编写SQL语句的功底有一定要求。

2)SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

摘自:关于mybatis框架的总结【转载】 - 救赎者 - 博客园

你可能感兴趣的:(mybatis)