实训第六天(mybatis)

今天实训第六天,我们学习了mybatis这个数据库框架,虽然说框架的环境搭建非常的繁琐,但是在了解原理和流程之后是非常的舒服的。因为有一个强大的工具被我掌握了,所以今天感觉非常的开心。

 

首先我们是在springmvc上面搭建的mybatis框架的。所以地基一定要搭建起来。就是在pom.xml写依赖。然后在spring(applicationcontent.xml)容器里面写一个mapper的扫描器,然后在mvc里面写一个controller的扫描器。

 

然后就是那写mybatis的配置文件,这个配置文件大概分为两个步骤,第一写一个关于sql语句的内容,第二就是写映射内容(spring全局配置mapper映射)

接下来就是详细步骤

1.基于maven的springmvc的框架要搭建起来。

实训第六天(mybatis)_第1张图片

2.通过maven非常爽的依赖管理功能来下载mybatis的依赖。

 
	
		2.6
		4.1.3.RELEASE
		1.7.6
	
	
	
		
			
				org.springframework
				spring-framework-bom
				${spring.version}
				pom
				import
			
		
	


	
	
		
			org.springframework
			spring-webmvc
		
		
			commons-lang
			commons-lang
			${commons-lang.version}
		
		
			org.slf4j
			slf4j-log4j12
			1.7.6
			
				
					org.slf4j
					slf4j-api
				
			
		

		
			org.slf4j
			slf4j-api
			${slf4j.version}
		

		
			commons-fileupload
			commons-fileupload
			1.3.1
		


		
		  
			javax.servlet
			servlet-api
			2.5
			provided
		
		

		
			com.fasterxml.jackson.core
			jackson-core
			2.7.4
		

		
			com.fasterxml.jackson.core
			jackson-annotations
			2.7.4
		
		
			org.codehaus.jackson
			jackson-mapper-asl
			1.9.13
		
		
			com.fasterxml.jackson.core
			jackson-databind
			2.7.4
		
		
		
			org.springframework
			spring-jdbc
			3.2.0.RELEASE
		
		
		
			org.springframework
			spring-tx
			${spring.version}
		
		
		
			mysql
			mysql-connector-java
			5.1.34
		

		
		
			c3p0
			c3p0
			0.9.1.2
		

		
			org.springframework
			spring-dao
			2.0.3
		

		
		
            org.mybatis
            mybatis
            3.2.8
        
        
            org.mybatis
            mybatis-spring
            1.3.0
        

  
	       
		
			javax.servlet
			jstl
			1.2
		
	
	
		

        
            org.apache.tomcat.maven
            tomcat7-maven-plugin
            2.2
            
                8888 
                UTF-8
            
        

		
	

  plugin的内容非常重要,可以解决一些bug。见一下上,到时候maven 的tomcat7:run可以运行项目,非常的爽(没写的时候很痛苦)

然后就是spring容器的配置

"1.0" encoding="UTF-8"?>
"http://www.springframework.org/schema/beans"
    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"
    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/context 
    http://www.springframework.org/schema/context/spring-context-4.2.xsd
    http://www.springframework.org/schema/mvc 
    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    "dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        "driverClass" value="com.mysql.jdbc.Driver" />
        "jdbcUrl"
            value="jdbc:mysql:///test?characterEncoding=utf-8"/>
        "user" value="root" />
        "password" value="123zsj" />
    
    
    
    "sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        "dataSource" ref="dataSource"/>
        "configLocation" value="classpath:mybatis-config.xml" />
    
    
    
    class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    
        "basePackage" value="mapper的路径">
        
        
        "sqlSessionFactory" ref="sqlSessionFactory">
    
    
    

    
    "userLoginService" class="com.farsight.service.impl.UserLoginServiceImpl">
    
    
    "transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        "dataSource" ref="dataSource">
    
    "transactionManager" >
    
    
     

注意,数据源的备注哪里需要做相应的更改,不然找不到对应的数据库。

还有mapper的扫描器那里也必须写好路径,不然到时候mapper写了就跟没写一样

还有你自己想注册进spring容器里面的一些类和对象,就比如文中下面的这一句



第三步,controller的创建
写一个了之后千万不要忘记
千万不要忘记
千万不要忘记
把这个controller也就是注册器写进我们的mvc容器里面,注意,不是spring容器,是mvc容器

接下来就是我们的开发流程,大体流程是用户发送数据给了controller,然后congtroller又将数据放入service里面
然后service又将数据发给mapper,最后通过mapper的映射关系,就激发了我们的mybatis框架,然后就成功的操作了数据库。
细节如下
写入controller
然后在里面把那个service的接口给导进来,这个实际作用就是把接口的实现类的方法直接调用,
因为我们之前在spring里面注册了接口的实现类,所以在这里我们调用接口的方法也就是调用了实现类的方法。
当我们调用实现类的方法的时候,我们具体的实现类怎么写呢
实现类里具体实现过程就是:将mapper装载进我们的类里,然后直接调用接口的方法,然后实现具体的MySQL语句
然后就成功了。
一开始还不知道这个是怎么实现的。逻辑不过来,后来思考了一下,我的理解如下
我们的service的实现类里面调用装载过来的usermapper接口,然后在大神底层的封装下,我们的mybatis框架直接将usermapper
的抽象方法通过在外面的mapper映射文件里面实现去运行。

一般方法如下,我们先来写一个框架的全局配置文件。这个配置文件里面可以写bean的别名(好处就是可以通过别名,将这个别名传递给下一个xml文件),比如下面这个









就在这下一个mapper文件xml
写传入数据库的数据库具体的数据和处理的mysql。比如





insert into user2 (username,password) values (#{username},#{password})

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(实训第六天(mybatis))