Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx

上传人:b****3 文档编号:7002572 上传时间:2023-05-10 格式:DOCX 页数:14 大小:43.13KB
下载 相关 举报
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第1页
第1页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第2页
第2页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第3页
第3页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第4页
第4页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第5页
第5页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第6页
第6页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第7页
第7页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第8页
第8页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第9页
第9页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第10页
第10页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第11页
第11页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第12页
第12页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第13页
第13页 / 共14页
Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx

《Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx》由会员分享,可在线阅读,更多相关《Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx(14页珍藏版)》请在冰点文库上搜索。

Spring306 +mybatis 306+JUnit+Log4j环境搭建.docx

Spring306+mybatis306+JUnit+Log4j环境搭建

Spring3.0.6+mybatis3.0.6+JUnit+Log4j环境搭建

配置Mybatis

MyBatis介绍:

首先,说说Mybatis这个东西。

Mybatis就是是以前ibatIS的升级版,

正是在今年(2011年)的6月中旬,在apache寄居6年的ibatIS脱离apache了,将代码托管到GoogleCode,与此同时改名为mybatis。

Mybatis作为一个实现了JPA(JavaPersistenceAPI)规范的一门O/RMapping框架(对象/关系映射),有着易学易用,轻巧灵活等特点。

尤其是对于擅长SQL的开发人员来说,mybatis对SQL和存储过程的直接支持能够让他们在获得mybatis封装优势的同时而不丧失SQL调优的手段,这是Hibernate所无法比拟的。

具体来说:

1.mybatis封装了绝大多数的JDBC样板代码,使得开发者只需要关注SQL本身

而不需要花费精力去处理例如注册驱动,创建Connection,以及确保关闭Connection这样繁琐的代码。

2.学习成本低,最容易上手和掌握的框架。

上面已经搭建好了Spring,我现在就来写将mybatis整合进spring

整合mybatis

1.首先我们需要导入mybatis-3.0.6.jar和mybatis-spring的整合包mybatis-spring-1.0.3-SNAPSHOT.jar到lib文件夹中

2.编写MyBatis的总配置文件,名字也可以随便取,但是后面也要在spring的配置文件中指定该配置文件的路径。

在WEB-INF目录下新建一个文件SqlMapConfig.xml:

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEconfiguration

PUBLIC"-//ibatis.apache.org//DTDConfig3.0//EN"

"http:

//ibatis.apache.org/dtd/ibatis-3-config.dtd">

--为一个vo类取一个别名儿,后面用的时候可以直接用该vo类的别名

而不用在写包+类名称

-->

--对应vo类的DAO接口所对应的xml配置文件的路径信息-->

3.接下来我们在spring的配置文件中导入该配置文件,并且配置好mybatis在spring中的bean配置,配置后的文件如下:

xmlversion="1.0"encoding="UTF-8"?

>

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xmlns:

context="http:

//www.springframework.org/schema/context"

xmlns:

aop="http:

//www.springframework.org/schema/aop"

xmlns:

tx="http:

//www.springframework.org/schema/tx"

xsi:

schemaLocation="http:

//www.springframework.org/schema/beans

http:

//www.springframework.org/schema/beans/spring-beans-2.5.xsd

http:

//www.springframework.org/schema/contexthttp:

//www.springframework.org/schema/context/spring-context-2.5.xsd

http:

//www.springframework.org/schema/aop

http:

//www.springframework.org/schema/aop/spring-aop-2.5.xsd

http:

//www.springframework.org/schema/txhttp:

//www.springframework.org/schema/tx/spring-tx-2.5.xsd">

--这个地方开始放置所有bean的配置信息-->

--配置jdbc.properties文件的位置信息-->

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

--读取jdbc.properties文件,配置数据源-->

destroy-method="close">

--数据库连接池配置-->

--初始化连接数量-->

--最大连接数量-->

--最大空闲连接数量-->

--最小空闲连接数量-->

--sqlSessionFactory-->

--MyBatis在spring中Bean的配置,都是固定的-->

--

//注销刚刚上面Spring的配置

配置实现类,注入数据源

配置service类,注入上面的实现类

-->

这里需要指明SqlMapConfig.xml文件的路径

4.编写在SqlMapConfig.xml文件中vo类对应的DAO类对应的xml文件。

这个xml中定义在这张表上所有进行的CRUD操作的具体SQL语句,也就是实现类在实现所操作的sql语句都是在这个文件里面所读取的。

说白了就是一个SQL语句集合的文件。

具体模板如下:

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEmapper

PUBLIC"-//ibatis.apache.org//DTDMapper3.0//EN"

"http:

//ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

--namespace的作用是为这张表取一个名字,好在impl类中进行访问-->

--插入一行数据-->

INSERTINTOMAJORTABLE(MAJORNAME,INCOLLEGE,STARTSELECTDATE,ENDSELECTDATE)VALUES

(#{majorName},#{inCollege},#{startSelectDate},#{endSelectDate})

--删除一条数据-->

DELETEFROMMAJORTABLEWHEREMAJORID=#{id}

--更新一条数据-->

UPDATEMAJORTABLESETMAJORNAME=#{majorName},INCOLLEGE=#{inCollege},

STARTSELECTDATE=#{startSelectDate},

ENDSELECTDATE=#{endSelectDate}WHEREMAJORID=#{majorId};

--查询该表的总行数-->

SELECTCOUNT(*)FROMMAJORTABLEWHEREISDELETED='0'

--查询一条数据-->

SELECTMAJORID,MAJORNAME,INCOLLEGE,STARTSELECTDATE,

ENDSELECTDATE,ISDELETEDFROMMAJORTABLEWHEREMAJORID=#{id}

--查询一组数据-->

SELECTMAJORID,MAJORNAME,INCOLLEGE,STARTSELECTDATE,

ENDSELECTDATE,ISDELETEDFROMMAJORTABLEWHEREISDELETED=0

但是我这次不会写这么多,我只是做个搭建测试,我的TestTable.xml文件内内容如下:

xmlversion="1.0"encoding="UTF-8"?

>

DOCTYPEmapper

PUBLIC"-//ibatis.apache.org//DTDMapper3.0//EN"

"http:

//ibatis.apache.org/dtd/ibatis-3-mapper.dtd">

--namespace的作用是为这张表取一个名字,好在impl类中进行访问-->

--插入一行数据-->

INSERTINTOTESTTABLE(ID,NAME)VALUES(#{id},#{name})

这里要注意,MYBATIS中的mapper文件中$和#有区别的

假如mapper中有如下的语句:

INSERTINTOCOLLEGETABLE(COLLEGENAME,COLLEGEDESCRIPTION)

VALUES($(#){collegeName},$(#){collegeDescription})

a)$表示取值,那么从mapper文件中读取这个sql语句为:

INSERTINTOCOLLEGETABLE(COLLEGENAME,COLLEGEDESCRIPTION)VALUES(aaa,bbbb)

不是问号,而是具体的值

这个时候读取的SQL是讲我们的值设置到了sql语句,就没有占位符?

b)#表示占位符,那么从mapper文件中读取的该sql语句如:

INSERTINTOANNOUNCEMENT(TITLE,CONTENT)VALUES(?

?

所以搞不好就会报错:

Cause:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:

Unknowncolumn'aaa'in'fieldlist'

5.重新编写一个ITestTableDAO的实现类ITestTableDAOImpl2.java,这里,我所有的DAO设计有点问题,但是不影响实现,希望大家以后不要像我这样写。

我懒得从前面改了。

在DAO接口中的时候就把所有方法的参数带上,我这儿没有带上,所以有点难看。

packageorg.yhb.vo.impl;

importorg.apache.ibatis.session.SqlSession;

importorg.yhb.vo.TestTable;

importorg.yhb.vo.dao.ITestTableDAO;

publicclassITestTableDAOImpl2implementsITestTableDAO{

privateSqlSessionsession;

publicSqlSessiongetSession(){

returnsession;

}

//将刚刚配置的Spring中ID为sqlSession的bean注入该实现类

publicvoidsetSession(SqlSessionsession){

this.session=session;

}

publicvoiddoInsert(){

TestTabletest=newTestTable();

test.setId

(2);

test.setName("yuanmomo2");

this.session.insert("org.yhb.vo.dao.mapper.TestTable.doInsert",test);

}

}

6.重新编写一个ITestTableDAOsevice类:

ITestTableDAOService2.java

packageorg.yhb.vo.service;

importorg.yhb.vo.dao.ITestTableDAO;

importorg.yhb.vo.impl.ITestTableDAOImpl2;

publicclassITestTableDAOService2implementsITestTableDAO{

privateITestTableDAOImpl2testImpl;

publicITestTableDAOImpl2getTestImpl(){

returntestImpl;

}

//这个setter和重要,setter方式只spring在实现注入的时候调用的方法

publicvoidsetTestImpl(ITestTableDAOImpl2testImpl){

this.testImpl=testImpl;

}

publicvoiddoInsert(){

this.testImpl.doInsert();

}

}

7.剩下就是将我们刚刚写的第二个实现类配置到Spring的配置文件中去,让service调用我们刚刚编写的类,而不是前一个。

对ApplicationContext.xml做如下修改:

xmlversion="1.0"encoding="UTF-8"?

>

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xmlns:

context="http:

//www.springframework.org/schema/context"

xmlns:

aop="http:

//www.springframework.org/schema/aop"

xmlns:

tx="http:

//www.springframework.org/schema/tx"

xsi:

schemaLocation="http:

//www.springframework.org/schema/beans

http:

//www.springframework.org/schema/beans/spring-beans-2.5.xsd

http:

//www.springframework.org/schema/contexthttp:

//www.springframework.org/schema/context/spring-context-2.5.xsd

http:

//www.springframework.org/schema/aop

http:

//www.springframework.org/schema/aop/spring-aop-2.5.xsd

http:

//www.springframework.org/schema/txhttp:

//www.springframework.org/schema/tx/spring-tx-2.5.xsd">

--这个地方开始放置所有bean的配置信息-->

--配置jdbc.properties文件的位置信息-->

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

--读取jdbc.properties文件,配置数据源-->

destroy-method="close">

--数据库连接池配置-->

--初始化连接数量-->

--最大连接数量-->

--最大空闲连接数量-->

--最小空闲连接数量-->

--sqlSessionFactory-->

--MyBatis在spring中Bean的配置,都是固定的-->

--配置实现类,注入数据源-->

--配置service类,注入上面的实现类-->

8.修改TestServlet,

packageorg.yhb.test;

importjava.io.IOException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpSer

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2