Maven搭建SSM(SpringMVC + Spring + Mybaits)开发环境 (下)

一. 使用mybatais-generator插件

下面使用mysql数据库创建一个ssmdemo的库,并创建user表

CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(100) default NULL,
  `password` varchar(100) default NULL,
  `age` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

下面将添加 mybatais-generator的插件用于方便 mybatis的使用, 关于mybatais-generator的使用,后边将有介绍,pom.xml文件中加入以下


    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.2</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

还需要在resource下添加generatorConfig.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>  
    <classPathEntry  location="E:\apache-maven-3.2.5-bin\repository2\mysql\mysql-connector-java\5.1.34\mysql-connector-java-5.1.34.jar"/>  
    <context id="DB2Tables"  targetRuntime="MyBatis3">  
        <commentGenerator> 
            <property name="suppressDate" value="true"/>  
           <!-- 是否去除自动生成的注释 true:是 : false:否 -->  
            <property name="suppressAllComments" value="true"/>  
        </commentGenerator>  
        <!--数据库链接URL,用户名、密码 -->  
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost/mybatisdemo" userId="root" password="root">  
        </jdbcConnection> 
        <javaTypeResolver> 
            <property name="forceBigDecimals" value="false"/>  
        </javaTypeResolver>  
       <!-- 生成模型的包名和位置--> 
 <javaModelGenerator targetPackage="cn.touna.mybatisdemo.bean" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true"/>  
            <property name="trimStrings" value="true"/>  
        </javaModelGenerator>  
        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="cn.touna.mybatisdemo.mapping" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true"/>  
        </sqlMapGenerator>  
        <!-- 生成DAO的包名和位置-->  
        <javaClientGenerator type="XMLMAPPER" targetPackage="cn.touna.mybatisdemo.dao" targetProject="src/main/java">  
            <property name="enableSubPackages" value="true"/>  
        </javaClientGenerator>  
        <!-- 要生成哪些表--> 
        <table tableName="user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
        <table tableName="role" domainObjectName="Role" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>  
</generatorConfiguration> 

这样mybatais-generator会为我们生成user表的bean, mapper文件和dao, 执行run->maven-build如下
加入参数mybatis-generator:generate
这里写图片描述
之后相关文件就会生成
这里写图片描述

接下来创建User的Servie与Controller, 首先 为 UserMappper添加一个findAll方法

List<User> findAll();

UserMapper.xml中添加如下

    <select id="findAll" resultMap="BaseResultMap">
    select 
        <include refid="Base_Column_List" />
     from user
    </select>

UserService

public interface UserService {
    /**
     * 查询所有用户
     */
    List<User> findUsers();
}

UserServiceImpl

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    public List<User> findUsers() {
        return userMapper.findAll();
    }
}

UserController如下

@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/list")
    public ModelAndView list() {
        ModelAndView mav = new ModelAndView("user_list");
        List<User> userList = userService.findUsers();
        mav.addObject("userList", userList);
        return mav;
    }
}

user_list.jsp

<body>
        <table>
        <tr>
            <td>用户ID</td>
            <td>用户名</td>
            <td>年龄</td>
                </tr>
        <%--遍历lstUsers集合中的User对象 --%>
        <c:forEach var="user" items="${userList}">
            <tr>
                <td>${user.id}</td>
                <td>${user.username}</td>
                <td>${user.age}</td>
            </tr>
        </c:forEach>
    </table>

这样一套调用就实现了。这时项目结构如下图
这里写图片描述

接下来再为项目加入log4j的配置 ,这里使用self-log4j
1. 添加依赖

    <!-- 配置log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.9</version>
            <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
    </dependency>
2.在web.xml中配置spring对log4j的集成
    <!-- log4j配置 -->
    <context-param>      
        <param-name>log4jConfigLocation</param-name>      
        <param-value>classpath:log4j.properties</param-value>      
    </context-param>  
    <!--启动一个watchdog线程每1800秒扫描一下log4j配置文件的变化-->  
        <context-param>      
        <param-name>log4jRefreshInterval</param-name>      
        <param-value>1800000</param-value>      
    </context-param>   
    <!--spring log4j监听器-->  
    <listener>      
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>      
    </listener> 
3. 在resources文件夹中加入log4j的配置文件
     #设置全局参数
log.file = logs/ssm.log
log.file.level = DEBUG

#定义根日志级别和输出端(定义了两个输出端)  
log4j.rootLogger=${log.file.level},CONSOLE,FILE 
#定义第一个输出端,输出到控制台  
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c(%L) - %m%n  

#定时第二个输出端,输出到文件,该文件最大空间为1000KB,超过1000KB后自动备份,生成新文件  
log4j.appender.FILE=org.apache.log4j.RollingFileAppender  
log4j.appender.FILE.file=${log.file}  
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.FILE.layout.conversionPattern=%d [%t] %-5p %c(%L) - %m%n  
log4j.appender.FILE.MaxFileSize=1000KB  
log4j.appender.FILE.MaxBackupIndex=10  
#定义第一个输出端,输出到控制台  
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c(%L) - %m%n  

#定时第二个输出端,输出到文件,该文件最大空间为1000KB,超过1000KB后自动备份,生成新文件  
log4j.appender.FILE=org.apache.log4j.RollingFileAppender  
log4j.appender.FILE.file=${log.file}  
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.FILE.layout.conversionPattern=%d [%t] %-5p %c(%L) - %m%n  
log4j.appender.FILE.MaxFileSize=1000KB  
log4j.appender.FILE.MaxBackupIndex=10  

###显示SQL语句部分
log4j.logger.com.ibatis=${log.file.level}
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=${log.file.level}
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=${log.file.level}
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=${log.file.level}
log4j.logger.java.sql.Connection=${log.file.level}
log4j.logger.java.sql.Statement=${log.file.level}
log4j.logger.java.sql.PreparedStatement=${log.file.level}, CONSOLE

4 . 代码中使用

    private static final Logger LOGGER = LoggerFactory.getLogger(UserController.class);

这样, ssm的框架就搭建完了。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值