日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring整合mybatis基于注解

發(fā)布時間:2024/2/28 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring整合mybatis基于注解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 數(shù)據(jù)庫

/*

Navicat MySQL Data Transfer

?

Source Server ????????: mysql

Source Server Version : 50549

Source Host ??????????: localhost:3306

Source Database ??????: ooxx

?

Target Server Type ???: MYSQL

Target Server Version : 50549

File Encoding ????????: 65001

?

Date: 2019-09-19 13:23:49

*/

?

SET FOREIGN_KEY_CHECKS=0;

?

-- ----------------------------

-- Table structure for user

-- ----------------------------

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

??`id` int(11) NOT NULL AUTO_INCREMENT,

??`name` varchar(255) DEFAULT NULL,

??`pwd` varchar(255) DEFAULT NULL,

??PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

?

-- ----------------------------

-- Records of user

-- ----------------------------

INSERT INTO `user` VALUES ('1', '康康', '56345');

INSERT INTO `user` VALUES ('2', '喬治大哥', '123456');

INSERT INTO `user` VALUES ('3', 'George', '123456');

INSERT INTO `user` VALUES ('4', '董小康', '123456');

?

  • Pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
?????????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
?????????xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
????<modelVersion>4.0.0</modelVersion>

????<groupId>com.henu</groupId>
????<artifactId>spring_mybatis_xml</artifactId>
????<version>1.0-SNAPSHOT</version>

????<!--導(dǎo)入spring依賴-->
????<dependencies>
????????<!-- spring4.3.2 -->
????????<!-- spring-context -->
????????<dependency>
????????????<groupId>org.springframework</groupId>
????????????<artifactId>spring-context</artifactId>
????????????<version>4.3.2.RELEASE</version>
????????</dependency>
????????<!-- spring-core -->
????????<dependency>
????????????<groupId>org.springframework</groupId>
????????????<artifactId>spring-core</artifactId>
????????????<version>4.3.2.RELEASE</version>
????????</dependency>
????????<!-- spring-beans -->
????????<dependency>
????????????<groupId>org.springframework</groupId>
????????????<artifactId>spring-beans</artifactId>
????????????<version>4.3.2.RELEASE</version>
????????</dependency>
????????<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
????????<dependency>
????????????<groupId>org.springframework</groupId>
????????????<artifactId>spring-aop</artifactId>
????????????<version>4.3.2.RELEASE</version>
????????</dependency>
????????<!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
????????<dependency>
????????????<groupId>org.springframework</groupId>
????????????<artifactId>spring-aspects</artifactId>
????????????<version>4.3.2.RELEASE</version>
????????</dependency>
????????<!--使用AspectJ方式注解需要相應(yīng)的包 -->
????????<dependency>
????????????<groupId>org.aspectj</groupId>
????????????<artifactId>aspectjrt</artifactId>
????????????<version>1.6.11</version>
????????</dependency>
????????<!--使用AspectJ方式注解需要相應(yīng)的包 -->
????????<!--
????????<dependency>
????????????<groupId>org.aspectj</groupId>
????????????<artifactId>aspectjweaver</artifactId>
????????????<version>1.6.11</version>
????????</dependency>
????????-->
????????<!-- 添加數(shù)據(jù)庫連接池?druid -->
????????<dependency>
????????????<groupId>com.alibaba</groupId>
????????????<artifactId>druid</artifactId>
????????????<version>1.1.3</version>
????????</dependency>
????????<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
????????<dependency>
????????????<groupId>mysql</groupId>
????????????<artifactId>mysql-connector-java</artifactId>
????????????<version>5.1.6</version>
????????</dependency>
????????<!-- spring-tx 事務(wù)控制-->
????????<dependency>
????????????<groupId>org.springframework</groupId>
????????????<artifactId>spring-tx</artifactId>
????????????<version>4.3.2.RELEASE</version>
????????</dependency>
????????<!-- spring-jdbc -->
????????<dependency>
????????????<groupId>org.springframework</groupId>
????????????<artifactId>spring-jdbc</artifactId>
????????????<version>4.3.2.RELEASE</version>
????????</dependency>
????????<!--mybatis-->
????????<dependency>
????????????<groupId>org.mybatis</groupId>
????????????<artifactId>mybatis</artifactId>
????????????<version>3.4.5</version>
????????</dependency>
????????<!-- spring整合mybatis插件包 -->
????????<dependency>
????????????<groupId>org.mybatis</groupId>
????????????<artifactId>mybatis-spring</artifactId>
????????????<version>1.3.2</version>
????????</dependency>

????????<!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
????????<dependency>
????????????<groupId>org.springframework</groupId>
????????????<artifactId>spring-expression</artifactId>
????????????<version>4.3.2.RELEASE</version>
????????</dependency>
????????<!-- https://mvnrepository.com/artifact/junit/junit -->
????????<dependency>
????????????<groupId>junit</groupId>
????????????<artifactId>junit</artifactId>
????????????<version>4.12</version>
????????????<scope>compile</scope>
????????</dependency>
????????<!-- pagehelper -->
????????<dependency>
????????????<groupId>com.github.pagehelper</groupId>
????????????<artifactId>pagehelper</artifactId>
????????????<version>5.1.2</version>
????????</dependency>
????????<dependency>
????????????<groupId>org.projectlombok</groupId>
????????????<artifactId>lombok</artifactId>
????????????<version>1.18.0</version>
????????</dependency>

????</dependencies>

</project>

?

  • Bean

package com.henu.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;

/**
?* @author George
?* @description
?**/
@NoArgsConstructor
@AllArgsConstructor
@Data
public class User {
????private Integer id;
????private String name;
????private String pwd;
}

?

  • Dao

package com.henu.dao;

import com.henu.bean.User;

import java.util.List;

/**
?* @author George
?* @description
?**/
public interface UserDao {
????List<User> queryAll();
????int insert(User user);
}

?

  • Service

package com.henu.service;

import com.henu.bean.User;

import java.util.List;

public interface UserService {
????List<User> queryAll();
????int insert(User user);
}

?

  • serviceImpl

package com.henu.service;

import com.henu.bean.User;
import com.henu.dao.UserDao;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
?* @author George
?* @description
?**/
@Data
@Service
public class UserServiceImpl implements UserService {

????@Autowired
????private UserDao userDao;

????public List<User> queryAll() {
????????List<User> users = userDao.queryAll();
????????return users;
????}
????@Transactional
????public int insert(User user) {
????????return userDao.insert(user);
????}
}

  • Resources_db.properties

#db config
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/ooxx
jdbc.username=root
jdbc.password=123456
initialSize=5
minIdle=2
maxActive=10
maxWait=10000
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=300000
testWhileIdle=true
testOnBorrow=true
testOnReturn=false
poolPreparedStatements=true
maxPoolPreparedStatementPerConnectionSize=20
defaultAutoCommit=true
validationQuery=select 1

?

  • Resources_sqlMybatisConfig.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>
????????<!-- 設(shè)置實(shí)體類別名 -->
????????<typeAlias type="com.henu.bean.User" alias="user"></typeAlias>
????</typeAliases>
????<!-- 配置分頁插件 -->
????<plugins>
????????<plugin interceptor="com.github.pagehelper.PageInterceptor">
????????????<!-- 設(shè)置合理性分頁 -->
????????????<property name="reasonable" value="true"></property>
????????</plugin>
????</plugins>

</configuration>

?

  • Resources_springContext.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:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><!--導(dǎo)入屬性文件--><context:property-placeholder location="classpath:db.properties"></context:property-placeholder><!--啟動classpath路徑掃描--><context:component-scan base-package="com.henu"></context:component-scan><!--配置數(shù)據(jù)源--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"><property name="driverClassName" value="${jdbc.driverClassName}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/><!-- ******配置數(shù)據(jù)庫連接池相關(guān)信息******* --><!-- 配置初始化大小、最小、最大 --><property name="initialSize" value="${initialSize}"/><property name="minIdle" value="${minIdle}"/><property name="maxActive" value="${maxActive}"/><!-- 配置獲取連接等待超時的時間 --><property name="maxWait" value="${maxWait}"/><!-- 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒 --><property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}"/><!-- 配置一個連接在池中最小生存的時間,單位是毫秒 --><property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}"/><property name="testWhileIdle" value="${testWhileIdle}"/><!-- 這里建議配置為TRUE,防止取到的連接不可用 --><property name="testOnBorrow" value="${testOnBorrow}"/><property name="testOnReturn" value="${testOnReturn}"/><!-- 打開PSCache,并且指定每個連接上PSCache的大小 --><property name="poolPreparedStatements" value="${poolPreparedStatements}"/><property name="maxPoolPreparedStatementPerConnectionSize"value="${maxPoolPreparedStatementPerConnectionSize}"/><!-- 這里配置提交方式,默認(rèn)就是TRUE,可以不用配置 --><property name="defaultAutoCommit" value="${defaultAutoCommit}"/><!-- 驗(yàn)證連接有效與否的SQL,不同的數(shù)據(jù)配置不同 --><property name="validationQuery" value="${validationQuery}"/></bean><!--配置sqlSessionFactory--><bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!--配置數(shù)據(jù)源--><property name="dataSource" ref="dataSource"></property><!--加載mybatis的配置文件--><property name="configLocation" value="classpath:sqlMybatisConfig.xml"></property><!--加載mybatis的映射文件--><property name="mapperLocations" value="classpath:mapper/UserDao.xml"></property></bean><!--掃描dao層 id未被使用可以不取--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--指定dao接口路徑--><property name="basePackage" value="com.henu.dao"></property><!--指定sqlSessionFactory--><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean><!--************************************************************--><!--配置事務(wù)管理器--><bean name="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--啟動事務(wù)注解--><tx:annotation-driven transaction-manager="txManager"></tx:annotation-driven></beans>
  • Resources_UserDao.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="com.henu.dao.UserDao"><resultMap id="userMap" type="User"><id property="id" column="id"></id><result property="name" column="name"></result><result property="pwd" column="pwd"></result></resultMap><select id="queryAll" resultMap="userMap">select * from user;</select><insert id="insert" parameterType="user">insert into user values(#{id},#{name},#{pwd})</insert></mapper>

?

  • 測試SMTest

package com.henu.text;

import com.henu.bean.User;
import com.henu.service.UserService;
import lombok.AllArgsConstructor;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

/**
?* @author George
?* @description
?**/
public class SMTest {
????private ClassPathXmlApplicationContext context = null;
????private UserService userService = null;

????@Before
????public void init(){
????????context = new ClassPathXmlApplicationContext("springContext.xml");
????????userService = context.getBean(UserService.class);
????}

????@Test
????public void queryAll(){
????????List<User> users = userService.queryAll();
????????for (User user : users) {
????????????System.out.println(user);
????????}
????}

????@Test
????public void insert(){
????????User user = new User(null,"董小康","123456");
????????userService.insert(user);
????}

????@After
????public void destory(){
????????context.close();
????}
}

?

?

總結(jié)

以上是生活随笔為你收集整理的spring整合mybatis基于注解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。