Mybatis与Spring整合连接MySQL

来源:互联网 发布:绵阳广电网络营业厅 编辑:程序博客网 时间:2024/06/08 08:03

1 maven依赖

<dependencies>    <dependency>      <groupId>org.apache.commons</groupId>      <artifactId>commons-dbcp2</artifactId>      <version>2.0.1</version>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-context</artifactId>      <version>${spring.framework.version}</version>    </dependency>    <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <version>5.1.36</version>    </dependency>    <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis-spring</artifactId>      <version>1.2.2</version>    </dependency>    <dependency>      <groupId>org.mybatis</groupId>      <artifactId>mybatis</artifactId>      <version>3.2.8</version>    </dependency>    <dependency>      <groupId>org.apache.commons</groupId>      <artifactId>commons-lang3</artifactId>      <version>3.1</version>    </dependency>    <dependency>      <groupId>org.apache.commons</groupId>      <artifactId>commons-math</artifactId>      <version>2.2</version>    </dependency>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.11</version>      <scope>test</scope>    </dependency>    <dependency>      <groupId>org.springframework</groupId>      <artifactId>spring-test</artifactId>      <version>3.1.1.RELEASE</version>      <scope>test</scope>    </dependency>  </dependencies>

2 数据库表

表名为student,位于test库中。

CREATE TABLE `student` (  `id` int(11) NOT NULL,  `name` varchar(20) NOT NULL,  `age` int(11) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB

3 数据库表的映射类

package club.chuxing.tech.learn.mybatis.domain;public class Student {    private int id;    private String name;    private int age;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    @Override    public String toString() {        return "Student{" +                "id=" + id +                ", name='" + name + '\'' +                ", age=" + age +                '}';    }}

4 数据库访问DAO

package club.chuxing.tech.learn.mybatis.dao;import club.chuxing.tech.learn.mybatis.domain.Student;import org.apache.ibatis.annotations.Select;import org.springframework.stereotype.Component;@Componentpublic interface StudentDao {    @Select("select * from student where id = #{id}")    Student selectStudent(int id);}

此DAO不需要对应的Mapper文件。

5 Mybatis配置文件

mybatis.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>    <settings>        <!-- Globally enables or disables any caches configured in any mapper under this configuration -->        <setting name="cacheEnabled" value="true"/>        <!-- Sets the number of seconds the driver will wait for a response from the database -->        <setting name="defaultStatementTimeout" value="3000"/>        <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn -->        <setting name="mapUnderscoreToCamelCase" value="true"/>        <!-- Allows JDBC support for generated keys. A compatible driver is required.        This setting forces generated keys to be used if set to true,         as some drivers deny compatibility but still work -->        <setting name="useGeneratedKeys" value="true"/>    </settings>    <!-- Continue going here -->    <typeAliases>        <typeAlias alias="Student" type="club.chuxing.tech.learn.mybatis.domain.Student" />    </typeAliases></configuration>

6 Spring配置文件

applicationContext-common.xml:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns="http://www.springframework.org/schema/beans"       xmlns:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans.xsd       http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context.xsd">    <context:annotation-config/>    <!--扫描包进行注入-->    <context:component-scan base-package="club.chuxing.tech.learn.mybatis.dao" />    <!--创建数据源dataSource对象并注入到SqlSessionFactoryBean对象中-->    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >        <property name="driverClassName" value="com.mysql.jdbc.Driver" />        <property name="url" value="jdbc:mysql://127.0.0.1:3306/test" />        <property name="username" value="root" />        <property name="password" value="" />    </bean>    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource" />        <property name="configLocation" value="classpath:mybatis.xml" />        <property name="mapperLocations">            <list>                <value>classpath:mybatis-mapper/*Mapper.xml</value>            </list>        </property>    </bean>    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">        <constructor-arg ref="sqlSessionFactory"/>    </bean>    <!-- 配置扫描Mapper接口的包路径 -->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <!-- 如果是多个包名可用",; \t\n"中任意符号分隔开,详见:MapperScannerConfigurer[269行] -->        <property name="basePackage" value="club.chuxing.tech.learn.mybatis.dao"/>        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>    </bean>    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource" />    </bean></beans>

7 DAO单元测试

package club.chuxing.tech.learn.mybatis.dao;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.context.ContextConfiguration;import club.chuxing.tech.learn.mybatis.domain.Student;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import static club.chuxing.tech.learn.utils.PrintUtil.*;@ContextConfiguration(locations = "classpath:applicationContext-common.xml")@RunWith(SpringJUnit4ClassRunner.class)public class StudentDaoTest {    @Autowired    private StudentDao dao;    @Test    public void testSelectStudent() throws Exception {        Student student = dao.selectStudent(1);        print(student);    }}

也可以在Main函数中加载DAO bean:

package club.chuxing.tech.learn.mybatis;import club.chuxing.tech.learn.mybatis.dao.StudentDao;import club.chuxing.tech.learn.mybatis.domain.Student;import org.springframework.context.support.ClassPathXmlApplicationContext;import static club.chuxing.tech.learn.utils.PrintUtil.print;public class MyTest {    public static void main(String[] args) {        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-common.xml");        StudentDao  dao = context.getBean(StudentDao.class);        Student student = dao.selectStudent(1);        print(student);    }}
1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 普法知识竞赛要重新参与怎么办 我被当兵的打怎么办 头发没了一小块怎么办 改革怎么看我该怎么办 笔记本电脑卡死了怎么办关不了机 电脑卡死了怎么办关不了机 火车上别人占座怎么办 火车上遇到占座怎么办 青少年体力差容易疲劳怎么办 四年级的孩子作业拖拉怎么办 四年级孩子不写作业怎么办 四年级孩子不爱写作业怎么办 四年级的孩子写作业慢怎么办 四年级孩子不想写作业怎么办 四年级孩子写作业特别慢怎么办 6岁儿童睡眠少怎么办 四岁儿童睡眠少怎么办 因睡眠不足第二天没有精神怎么办 睡时间久了头疼怎么办 睡不踏实老醒怎么办 运动过后大腿肌肉酸痛怎么办 牛奶喝多了想吐怎么办 运动过度后吐了怎么办 喝酒后反胃想吐怎么办 拔牙后反胃想吐怎么办 健身完恶心想吐怎么办 锻炼后头晕想吐怎么办 高三学生睡眠不好怎么办 狗狗精力太旺盛怎么办 新入职的同事比你厉害怎么办 银子弹鞋开胶了怎么办 我很笨脑子反应慢怎么办 学车脑子不好使怎么办 生完二胎脑子不好使怎么办 羽毛球鞋买小了怎么办 羽毛球鞋买大了怎么办 感觉自己脑子越来越笨了怎么办? 生完孩子后身体素质差怎么办 胃口太好越来越胖怎么办 心情一紧张心跳手抖怎么办 消防兵新兵连俯卧撑不够怎么办