一,Spriing MVC 的使用 a.在generatorConfig(mysql).xml配置mybatis实体类进行自动生成bean,Mappper,dao等。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!-- 设置mysql自动生成文件jar包路径 --> <classPathEntry location="./WebContent/WEB-INF/lib/mybatis-generator-core-1.3.1.jar" /> <!-- 此处指定生成针对MyBatis3的DAO --> <context id="context" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressAllComments" value="true" /> <property name="defaultModelType" value="hierarchical"/> </commentGenerator> <!-- jdbc连接信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/db" userId="root" password="123456" /> <!-- 生成entity对象及保存路径 --> <javaModelGenerator targetPackage="com.controller.bean" targetProject="src" /> <!-- 生成xml文件以及配置文件及保存路径 --> <sqlMapGenerator targetPackage="com.controller.mapper" targetProject="src" /> <!-- 生成用于查询的dao对象及保存路径 --> <javaClientGenerator targetPackage="com.controller.dao" targetProject="src" type="XMLMAPPER" /> <!-- 想要生成的数据库表,自动化工具会根据该表的结构生成相应的vo对象 --> <table schema="" tableName="数据库表名" domainObjectName="生成实体类名" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> </context> </generatorConfiguration> b.在MyBatisGeneratorTool.java程序中进行读取生成相应的文件,生成之后刷新即可看到。 package config.mybatis; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; /** * MyBatis工具类:自动生成代码 * @author Studio * */ public class MyBatisGeneratorTool_mysql { private static Logger log = Logger.getLogger(MyBatisGeneratorTool_mysql.class); public static void main(String[] args){ try { // 读取使用Java的特性文件编写的配置文件。 // PropertyConfigurator.configure("//config//mybatis//log4j.properties"); List<String> warnings = new ArrayList<String>(); boolean overwrite = true; // generator文件路径 String genCfg = "/config/mybatis/generatorConfig(mysql).xml"; log.info(" generator path :"+ genCfg); File configFile = new File(MyBatisGeneratorTool_mysql.class.getResource(genCfg).getFile()); ConfigurationParser configPaser = new ConfigurationParser(warnings); Configuration config = configPaser.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); log.debug("successful!!!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (XMLParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } c.配置sqlMapConfig.xml文件,添加实体类与别名,导入相应的mapper与对应的xml文件。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 添加别名 --> <typeAliases> <typeAlias type="com.controller.bean.Users" alias="Users" /> </typeAliases> <!-- 导入mapper配置文件 --> <mappers> <mapper resource="com/controller/mapper/UsersMapper.xml" /> </mappers> </configuration> d,配置beans,让dao,impl,service之间交互。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" [ <!ENTITY contextInclude SYSTEM "org/springframework/web/context/WEB-INF/contextInclude.xml"> ]> <!-- 配置bean --> <beans> <!-- tuanshang_users配置 --> <bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean"> <property name="mapperInterface" value="com.controller.dao.UsersMapper"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean> <bean id="userServiceBase" class="com.controller.business.login.service.impl.IUserMapperImpl"> <property name="usermapper" ref="userDao"></property> </bean> <bean id="userService" parent="transactionBese"> <property name="target" ref="userServiceBase"></property> </bean> </beans> e,编写程序相关的dao,impl,service层并传递到controller进行操作到相应的jsp页面。 二,Spring MVC注解 1,导入注解需要使用的jar包放置到lib目录 2,配置spring.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.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-3.0.xsd"> <!-- 默认注解扫描包的路径 --> <context:component-scan base-package="com.controller" /> <!-- 导入注解所需要的jar包 --> <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/> <!-- 静态资源访问 --> <mvc:resources location="/images/" mapping="/images/**" /> <mvc:resources location="/img/" mapping="/img/**" /> <mvc:resources location="/js/" mapping="/js/**" /> <mvc:resources location="/css/" mapping="/css/**" /> <mvc:resources location="/airline/" mapping="/airline/**" /> <!--定义跳转文件的前后缀 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> <!--配置表单上传的视图解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8" /> <property name="maxUploadSize" value="10485760000" /> <property name="maxInMemorySize" value="40960" /> </bean> <!-- <bean id="initCity" class="com.controller.business.reservation.service.serviceImpl.InitBean" init-method="createPool"> </bean> --> </beans> 3,使用注解-->常用注解 @Controller 用于action类上,声明Action组件 @Service 用于service或biz的类上声明Service组件 @Service("serviceName") @Repository 用于dao包下的类上声明Dao组件 @Repository("daoName") @Component 用于不确定类上 引号中的内容表示给组件取名字,相当于bean标签中的id属性值<bean id="person"> @Component("className") @RequestMapping("/url") 用于用户请求映射的地址 @RequestMapping("/loginJump") @Resource 用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanName") @Autowired 用于注入,(srping提供的) 默认按类型装配 @Transactional( rollbackFor={Exception.class}) 事务管理 @Scope("prototype") 设定bean的作用域 @PostConstruct 注解实始化方法 @PreDestroy 注解销毁方法 @ModelAttribute("reg_form") 用于方法内作为参数 附: 如何使用Mybatis自动生成bean,Mappper,dao等。 先导入需要使用的jar包:mybatis-generator-core-1.3.2.jar 放到项目的lib路径下. 配置generatorConfig(mysql).xml,放到指定新建的包中,配置详情如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > <generatorConfiguration> <!-- 设置mysql自动生成文件jar包路径 --> <classPathEntry location="./WebContent/WEB-INF/lib/mybatis-generator-core-1.3.2.jar" /> <!-- 此处指定生成针对MyBatis3的DAO --> <context id="context" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressAllComments" value="true" /> <property name="defaultModelType" value="hierarchical"/> </commentGenerator> <!-- jdbc连接信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/db" userId="root" password="123456" /> <!-- 生成entity对象及保存路径 --> <javaModelGenerator targetPackage="com.controller.bean" targetProject="src" /> <!-- 生成xml文件以及配置文件及保存路径 --> <sqlMapGenerator targetPackage="com.controller.mapper" targetProject="src" /> <!-- 生成用于查询的dao对象及保存路径 --> <javaClientGenerator targetPackage="com.controller.dao" targetProject="src" type="XMLMAPPER" /> <!-- 想要生成的数据库表,自动化工具会根据该表的结构生成相应的vo对象 --> <table schema="" tableName="数据库表名" domainObjectName="生成entity对象名" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> <!-- <table schema="" tableName="qbz_users" domainObjectName="Users" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false" /> --> </context> </generatorConfiguration> 下面为自动生成文件的程序代码 package config.mybatis; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.mybatis.generator.api.MyBatisGenerator; import org.mybatis.generator.config.Configuration; import org.mybatis.generator.config.xml.ConfigurationParser; import org.mybatis.generator.exception.InvalidConfigurationException; import org.mybatis.generator.exception.XMLParserException; import org.mybatis.generator.internal.DefaultShellCallback; /** * MyBatis工具类:自动生成代码 * @author Studio * */ public class MyBatisGeneratorTool_mysql { private static Logger log = Logger.getLogger(MyBatisGeneratorTool_mysql.class); public static void main(String[] args){ try { // 读取使用Java的特性文件编写的配置文件。 // PropertyConfigurator.configure("//config//mybatis//log4j.properties"); List<String> warnings = new ArrayList<String>(); boolean overwrite = true; // generator文件读取路径 String genCfg = "/config/mybatis/generatorConfig(mysql).xml"; log.info(" generator path :"+ genCfg); File configFile = new File(MyBatisGeneratorTool_mysql.class.getResource(genCfg).getFile()); ConfigurationParser configPaser = new ConfigurationParser(warnings); Configuration config = configPaser.parseConfiguration(configFile); DefaultShellCallback callback = new DefaultShellCallback(overwrite); MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); myBatisGenerator.generate(null); log.debug("successful!!!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (XMLParserException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 解决项目中多个xml文件读取 在web.xml文件中增加配置如下: <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/xxx/*.xml</param-value> xxx表示xml文件路径 *.xml表示后缀名为xml的任意文件 </init-param>
配置Spring MVC
猜你喜欢
转载自xp-p.iteye.com/blog/2205111
今日推荐
周排行