搜索
首页数据库mysql教程一、MyBatis简介与配置MyBatis Spring MySql

MyBatis学习 之 一、MyBatis简介与配置MyBatis Spring MySql MyBatis学习 之 二、SQL语句映射文件(1)resultMap MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存 MyBatis学习 之 三、动态SQL语句 MyBatis学习 之 四、MyBatis配置文件 1.1MyBatis

MyBatis学习 之 一、MyBatis简介与配置MyBatis Spring MySql

MyBatis学习 之 二、SQL语句映射文件(1)resultMap

MyBatis学习 之 二、SQL语句映射文件(2)增删改查、参数、缓存

MyBatis学习 之 三、动态SQL语句

MyBatis学习 之 四、MyBatis配置文件


1.1MyBatis简介

     MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。
需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包)。mybatis-spring-1.0.0.jar(与Spring结合包)。

下载地址:
http://ibatis.apache.org/tools/ibator
http://code.google.com/p/mybatis/


1.2MyBatis Spring MySql简单配置

1.2.1搭建Spring环境

1,建立maven的web项目;
2,加入Spring框架、配置文件;
3,在pom.xml中加入所需要的jar包(spring框架的、mybatis、mybatis-spring、junit等);
4,更改web.xml和spring的配置文件;
5,添加一个jsp页面和对应的Controller;
6,测试。

可参照:http://limingnihao.iteye.com/blog/830409。使用Eclipse的Maven构建SpringMVC项目


1.2.2建立MySql数据库

建立一个学生选课管理数据库。
表:学生表、班级表、教师表、课程表、学生选课表。
逻辑关系:每个学生有一个班级;每个班级对应一个班主任教师;每个教师只能当一个班的班主任;

使用下面的sql进行建数据库,先建立学生表,插入数据(2条以上)。

更多sql请下载项目源文件,在resource/sql中。

Sql代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. /* 建立数据库 */  

  2. CREATEDATABASE STUDENT_MANAGER;  

  3. USE STUDENT_MANAGER;  

  4. /***** 建立student表 *****/  

  5. CREATETABLE STUDENT_TBL  

  6. (  

  7.   STUDENT_ID         VARCHAR(255) PRIMARYKEY,  

  8.   STUDENT_NAME       VARCHAR(10) NOTNULL,  

  9.   STUDENT_SEX        VARCHAR(10),  

  10.   STUDENT_BIRTHDAY   DATE,  

  11.   CLASS_ID           VARCHAR(255)  

  12. );  

  13. /*插入**/  

  14. INSERTINTO STUDENT_TBL (STUDENT_ID,  

  15.                         STUDENT_NAME,  

  16.                         STUDENT_SEX,  

  17.                         STUDENT_BIRTHDAY,  

  18.                         CLASS_ID)  

  19. VALUES   (123456,  

  20. '某某某',  

  21. '女',  

  22. '1980-08-01',  

  23.            121546  

  24.            )  



创建连接MySql使用的配置文件mysql.properties。

Mysql.properties代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. jdbc.driverClassName=com.mysql.jdbc.Driver  

  2. jdbc.url=jdbc:mysql://localhost:3306/student_manager?user=root&password=limingnihao&useUnicode=true&characterEncoding=UTF-8



1.2.3搭建MyBatis环境

顺序随便,现在的顺序是因为可以尽量的少的修改写好的文件。


1.2.3.1创建实体类: StudentEntity

Java代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. publicclass StudentEntity implements Serializable {  

  2. privatestaticfinallong serialVersionUID = 3096154202413606831L;  

  3. private ClassEntity classEntity;  

  4. private Date studentBirthday;  

  5. private String studentID;  

  6. private String studentName;  

  7. private String studentSex;  

  8. public ClassEntity getClassEntity() {  

  9. return classEntity;  

  10.    }  

  11. public Date getStudentBirthday() {  

  12. return studentBirthday;  

  13.    }  

  14. public String getStudentID() {  

  15. return studentID;  

  16.    }  

  17. public String getStudentName() {  

  18. return studentName;  

  19.    }  

  20. public String getStudentSex() {  

  21. return studentSex;  

  22.    }  

  23. publicvoid setClassEntity(ClassEntity classEntity) {  

  24. this.classEntity = classEntity;  

  25.    }  

  26. publicvoid setStudentBirthday(Date studentBirthday) {  

  27. this.studentBirthday = studentBirthday;  

  28.    }  

  29. publicvoid setStudentID(String studentID) {  

  30. this.studentID = studentID;  

  31.    }  

  32. publicvoid setStudentName(String studentName) {  

  33. this.studentName = studentName;  

  34.    }  

  35. publicvoid setStudentSex(String studentSex) {  

  36. this.studentSex = studentSex;  

  37.    }  

  38. }  




1.2.3.2创建数据访问接口

Student类对应的dao接口:StudentMapper。

Java代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. publicinterface StudentMapper {  

  2. public StudentEntity getStudent(String studentID);  

  3. public StudentEntity getStudentAndClass(String studentID);  

  4. public List getStudentAll();  

  5. publicvoid insertStudent(StudentEntity entity);  

  6. publicvoid deleteStudent(StudentEntity entity);  

  7. publicvoid updateStudent(StudentEntity entity);  

  8. }  



1.2.3.3创建SQL映射语句文件


Student类的sql语句文件StudentMapper.xml

Xml代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. xmlversion="1.0"encoding="UTF-8"?>

  2. span>>

  3. mappernamespace="com.manager.data.StudentMapper">

  4. resultMaptype="StudentEntity"id="studentResultMap">

  5. idproperty="studentID"column="STUDENT_ID"/>

  6. resultproperty="studentName"column="STUDENT_NAME"/>

  7. resultproperty="studentSex"column="STUDENT_SEX"/>

  8. resultproperty="studentBirthday"column="STUDENT_BIRTHDAY"/>

  9. resultMap>

  10. selectid="getStudent"parameterType="String"resultType="StudentEntity"resultMap="studentResultMap">

  11.            SELECT * from STUDENT_TBL ST

  12.                WHERE ST.STUDENT_ID = #{studentID}

  13.        ]]>

  14. select>

  15. selectid="getStudentAll"resultType="com.manager.data.model.StudentEntity"resultMap="studentResultMap">

  16.            SELECT * from STUDENT_TBL

  17.        ]]>

  18. select>

  19. mapper>




1.2.3.4创建MyBatis的mapper配置文件

在src/main/resource中创建MyBatis配置文件:mybatis-config.xml。


Xml代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. xmlversion="1.0"encoding="UTF-8"?>

  2. span>>

  3. 配置>

  4. 类型别名>

  5. 类型别名别名="StudentEntity"类型="com.manager.data.model.StudentEntity"/>

  6. 类型别名>

  7. 映射器>

  8. 映射器资源="com/manager/data/maps/StudentMapper.xml" />

  9. 映射器> ;

  10. 配置>





修改修改1.2.3.5Spring 的配置文件

主要是添加SqlSession的制作工厂类的bean:SqlSessionFactoryBean,(在mybatis.spring包中)。指定配置文件位置和数据源。
和数据访问接口需要相应的实现bean。通过MapperFactoryBean创建出来。需要执行接口类全称和SqlSession工厂bean的引用。

Xml代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. context:property-placeholder位置="classpath:mysql.properties"/>

  2. beanid="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

  3. 属性名称="driverClassName"="${jdbc.driverClassName }"/>

  4. 属性名称="url"="${jdbc.url}"/>

  5. >

  6. beanid="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

  7. 属性名称="数据源"ref="数据源"/>

  8. >

  9. beanid="sqlSessionFactory"="org.mybatis.spring.SqlSessionFactoryBean">

  10. 属性名称="配置位置" ="classpath:mybatis-config.xml"/>

  11. 属性名称="数据源"ref="数据源"/>

  12. 豆子>

  13. >

  14. beanid="studentMapper"= "org.mybatis.spring.MapperFactoryBean">

  15. 属性名称="mapperInterface"="com.manager.data.StudentMapper"/>

  16. 属性名称="sqlSessionFactory"ref="sqlSessionFactory"/>

  17. < ;/豆子>



也可以不定义mapper的bean,使用注解:

将StudentMapper加入注解


Java代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. @Repository

  2. @Transactional

  3. publicinterface StudentMapper {  

  4. }  


对应的需要在dispatcher-servlet.xml中加入扫描:


Xml代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">

  2. propertyname="annotationClass"value="org.springframework.stereotype.Repository"/>

  3. propertyname="basePackage"value="com.liming.manager"/>

  4. propertyname="sqlSessionFactory"ref="sqlSessionFactory"/>

  5. bean>



1.2.4测试StudentMapper

使用SpringMVC测试,创建一个TestController,配置tomcat,访问index.do页面进行测试:

Java代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. @Controller

  2. publicclass TestController {  

  3. @Autowired

  4. private StudentMapper studentMapper;  

  5. @RequestMapping(value = "index.do")  

  6. publicvoid indexPage() {    

  7.        StudentEntity entity = studentMapper.getStudent("10000013");  

  8.        System.out.println("name:"  entity.getStudentName());  

  9.    }    

  10. }  



使用Junit测试:

Java代码 一、MyBatis简介与配置MyBatis Spring MySql

  1. 使用Junit测试:  

  2. Java代码  

  3. @RunWith(value = SpringJUnit4ClassRunner.class)  

  4. @ContextConfiguration(value = "test-servlet.xml")  

  5. publicclass StudentMapperTest {  

  6. @Autowired

  7. private ClassMapper classMapper;  

  8. @Autowired

  9. private StudentMapper studentMapper;  

  10. @Transactional

  11. publicvoid getStudentTest(){  

  12.        StudentEntity entity = studentMapper.getStudent("10000013");  

  13.        System.out.println(""  entity.getStudentID() entity.getStudentName());  

  14.        List studentList = studentMapper.getStudentAll();  

  15. for( StudentEntity entityTemp : studentList){  

  16.            System.out.println(entityTemp.getStudentName());  

  17.        }  

  18.    }  

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Java之Mybatis的二级缓存怎么使用Java之Mybatis的二级缓存怎么使用May 24, 2023 pm 06:16 PM

缓存的概述和分类概述缓存就是一块内存空间.保存临时数据为什么使用缓存将数据源(数据库或者文件)中的数据读取出来存放到缓存中,再次获取的时候,直接从缓存中获取,可以减少和数据库交互的次数,这样可以提升程序的性能!缓存的适用情况适用于缓存的:经常查询但不经常修改的(eg:省市,类别数据),数据的正确与否对最终结果影响不大的不适用缓存的:经常改变的数据,敏感数据(例如:股市的牌价,银行的汇率,银行卡里面的钱)等等MyBatis缓存类别一级缓存:它是sqlSession对象的缓存,自带的(不需要配置)不

怎么使用springboot+mybatis拦截器实现水平分表怎么使用springboot+mybatis拦截器实现水平分表May 14, 2023 pm 06:43 PM

MyBatis允许使用插件来拦截的方法Executor(update,query,flushStatements,commit,rollback,getTransaction,close,isClosed)ParameterHandler(getParameterObject,setParameters)ResultSetHandler(handleResultSets,handleOutputParameters)StatementHandler(prepare,parameterize,ba

mybatis分页的几种方式mybatis分页的几种方式Jan 04, 2023 pm 04:23 PM

mybatis分页的方式:1、借助数组进行分页,首先查询出全部数据,然后再list中截取需要的部分。2、借助Sql语句进行分页,在sql语句后面添加limit分页语句即可。3、利用拦截器分页,通过拦截器给sql语句末尾加上limit语句来分页查询。4、利用RowBounds实现分页,需要一次获取所有符合条件的数据,然后在内存中对大数据进行操作即可实现分页效果。

springboot怎么整合mybatis分页拦截器springboot怎么整合mybatis分页拦截器May 13, 2023 pm 04:31 PM

简介今天开发时想将自己写好的代码拿来优化,因为不想在开发服弄,怕搞坏了到时候GIT到生产服一大堆问题,然后把它分离到我轮子(工具)项目上,最后运行后发现我获取List的时候很卡至少10秒,我惊了平时也就我的正常版本是800ms左右(不要看它很久,因为数据量很大,也很正常。),前提是我也知道很慢,就等的确需要优化时,我在放出我优化的plus版本,回到10秒哪里,最开始我刚刚接到这个app项目时,在我用PageHelper.startPage(page,num);(分页),还没等查到的数据封装(Pa

mybatis怎么调用mysql存储过程并获取返回值mybatis怎么调用mysql存储过程并获取返回值May 27, 2023 am 09:01 AM

mybatis调用mysql存储过程并获取返回值1、mysql创建存储过程#结束符号默认;,delimiter$$语句表示结束符号变更为$$delimiter$$CREATEPROCEDURE`demo`(INinStrVARCHAR(100),outourStrVARCHAR(4000))BEGINSETourStr=&#39;01&#39;;if(inStr==&#39;02&#39;)thensetourStr=&#39;02&#39;;en

springboot配置mybatis的sql执行超时时间怎么解决springboot配置mybatis的sql执行超时时间怎么解决May 15, 2023 pm 06:10 PM

当某些sql因为不知名原因堵塞时,为了不影响后台服务运行,想要给sql增加执行时间限制,超时后就抛异常,保证后台线程不会因为sql堵塞而堵塞。一、yml全局配置单数据源可以,多数据源时会失效二、java配置类配置成功抛出超时异常。importcom.alibaba.druid.pool.DruidDataSource;importcom.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;importorg.apache.

springboot怎么配置mybatis和事务管理springboot怎么配置mybatis和事务管理May 10, 2023 pm 07:13 PM

一、springboot与mybatis的配置1.首先,springboot配置mybatis需要的全部依赖如下:org.springframework.bootspring-boot-starter-parent1.5.1.RELEASEorg.springframework.bootspring-boot-starter-web1.5.1.RELEASEorg.mybatis.spring.bootmybatis-spring-boot-starter1.2.0com.oracleojdbc

PageHelper在springboot+mybatis框架中如何使用PageHelper在springboot+mybatis框架中如何使用May 12, 2023 pm 03:55 PM

一、思路将分页所需的内容都放到一个实体类中分页数据所需要的实体类!内包含页码,页大小,总条数,总页数,起始行pagehelpr提供了这个类pageInfo,不需要我们自己创建二、主要逻辑select*from表名limit起始行,展示几条数据#第n页每页展示五条数据select*from表名limit(n-1)*5,5#每页展示多少条pageSize3#总共有多少条totalselectcount(*)from表名#总页数pagespages=total%pagesSize==0?total/p

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版