使用idea 搭建Spring+mybatis

1、file-new-project

  

 

 项目的结构如下:

在WEB-INF 下面新建一个 文件夹lib

 右键WEB-INF ,new-Directory

所需要的jar 包有:

lib下载地址:

 网盘地址:https://pan.baidu.com/s/1YmDtsuhTQQp-HrZB3affGQ  提取码:26bs

然后右键 lib文件夹,选择Add as Library..

点击Ok,如下:

右键项目,new-Directory,  

然后,右键刚刚新建的文件夹config,选择 Make Directory as..--->Sources Root

然后,在config 文件夹下面新建三个文件夹,分别是:mybatis,spring,sqlmapperk,并创建三个空的文件夹,如下图所示:

然后,在src 下面新建三个文件夹,po(用于放实体类),test(用于单元测试),dao,dao.impl

如图所示:

在config文件夹下面新建一个db.properties 和 log4j.properties

 到这里,文件夹就弄好了.

下面进行开发内容:

1、config/mybatis/SqlMapConfig.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>
    <mappers>
        <mapper resource="sqlmap/UserMapper.xml"/>
    </mappers>
</configuration>

2、config/spring/applicationContext.xml

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       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-3.2.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.2.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
"
>

    <!--加载配置文件-->
    <context:property-placeholder location="classpath:db.properties"/>
    <context:property-placeholder location="classpath:log4j.properties"/>

    <!--配置数据源-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxActive" value="10"/>
        <property name="maxIdle" value="5"/>

    </bean>
    <!--配置SqlSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--加载SqlMapConfig.xml配置文件-->
        <property name="configLocation" value="mybatis/SqlMapConfig.xml"/>
        <!--数据源-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--注入UserInfoDaoImpl 接口实现类-->
    <bean id="userInfoDao" class="com.wlc.dao.impl.UserMapperDaoImpl"> 
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
</beans>

3、编写UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd"
        >
<mapper namespace="test">
    <select id="findUserById" parameterType="java.lang.Integer" resultType="com.wlc.po.UserInfo">
        select * from userInfo where id =#{id}
    </select>
</mapper>

4、编写db.properties 

jdbc.driver=oracle.jdbc.OracleDriver
jdbc.url=jdbc:oracle:thin:@localhost:1521:orcl
jdbc.username=scott 
jdbc.password=tiger

5、log4j.properties

log4j.rootLogger=INFO,Console,File  
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.Target=System.out  
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n  

#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender  
#指定输出目录
log4j.appender.File.File = logs/ssm.log  
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB  
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL  
log4j.appender.File.layout = org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n  

6、编写UserMapperDao 接口

package com.wlc.dao;

import com.wlc.po.UserInfo;

/**
 * @author 王立朝
 * @version 1.0
 * @description com.wlc.dao
 * @date 2019/1/25
 **/
public interface UserMapperDao {
    //根据用户id查看用户信息
    UserInfo findUserById(Integer integer);
}

7、编写UserMapperDaoImpl.java

package com.wlc.dao.impl;

import com.wlc.dao.UserMapperDao;
import com.wlc.po.UserInfo;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;

/**
 * @author 王立朝
 * @version 1.0
 * @description com.wlc.dao.impl
 * @date 2019/1/25
 **/
public class UserMapperDaoImpl extends SqlSessionDaoSupport implements UserMapperDao {

    @Override
    public UserInfo findUserById(Integer integer) {
        SqlSession sqlSession = this.getSqlSession();
        UserInfo userInfo = sqlSession.selectOne("test/findUserById");
        return userInfo;
    }
}

8、编写UserInfo.java 实体类

package com.wlc.po;

/**
 * @author 王立朝
 * @version 1.0
 * @description po
 * @date 2019/1/16
 **/
public class UserInfo {
    //用户id
    private Integer id;
    //用户名
    private String userName;
    //密码
    private String passWord;
    //性别
    private String sex;
    //邮箱
    private String email;
    //联系方式
    private String phone;
    //家庭住址
    private String address;
    //年龄
    private Integer age;
    //血型
    private String bloodType;

    public UserInfo(Integer id, String userName, String passWord, String sex, String email, String phone, String address, Integer age, String bloodType) {
        this.id = id;
        this.userName = userName;
        this.passWord = passWord;
        this.sex = sex;
        this.email = email;
        this.phone = phone;
        this.address = address;
        this.age = age;
        this.bloodType = bloodType;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getBloodType() {
        return bloodType;
    }

    public void setBloodType(String bloodType) {
        this.bloodType = bloodType;
    }

    public UserInfo() {
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", userName='" + userName + '\'' +
                ", passWord='" + passWord + '\'' +
                ", sex='" + sex + '\'' +
                ", email='" + email + '\'' +
                ", phone='" + phone + '\'' +
                ", address='" + address + '\'' +
                ", age=" + age +
                ", bloodType='" + bloodType + '\'' +
                '}';
    }
}

9、编写测试类 UserMapperTest.java



猜你喜欢

转载自www.cnblogs.com/wanglichaoya/p/10320826.html