1.java的maven依赖包

  <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.3.6.RELEASE</spring.version>
<springboot.version>1.5.1.RELEASE</springboot.version>
</properties>
   <dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.26</version>
</dependency>
    <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${springboot.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>

2. main主函数(启动spring)

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class App
{ public static void main( String[] args )
{
SpringApplication.run(App.class,args);
}
}

3.建立业务处理类

1)第1种方法 使用自动装载(@Autowired)

package com.cnblog.g2;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component; @Component
public class CommandStart implements CommandLineRunner{ @Autowired
public UserService userService;
@Override
public void run(String... strings) throws Exception { if(userService!=null)
{ this.userService.insertUsers(new Users("YangT", "123sd")); } } }

2)第2种方法,使用 Context.getBean

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component; @Component
public class CommandStart implements CommandLineRunner,ApplicationContextAware {
ApplicationContext applicationContext; public UserService userService;
@Override
public void run(String... strings) throws Exception {
//这里的bean名称,首字母要小写
Object userService = applicationContext.getBean("userServiceImpl");
if(userService!=null)
{
this.userService = (UserService)userService;
if(this.userService != null) {
this.userService.insertUsers(new Users("YangT", "123sd"));
}
} } @Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}

4.业务实现类

public interface UserService {
public List<Users> queryUsers();
public int insertUsers(Users user);
} @Component
public class UserServiceImpl implements UserService{
@Autowired
private UsersMapper usersMapper; @Override
public List<Users> queryUsers(){
return usersMapper.queryUsers();
} @Override
public int insertUsers(Users user){
return usersMapper.insertUsers(user);
}
}

5.SqlMapper相关

UsersMapper  在 com.cnblog.g2.mapper.UsersMapper里
@Repository
public interface UsersMapper {
public List<Users> queryUsers();
public Users queryUsersById(int id);
public int insertUsers(Users user);
public int updateUsers(Users user);
public int deleteUsers(int id);
}
<mapper  namespace="com.cnblog.g2.mapper.UsersMapper">

    <!-- 查询全部用户 -->
<select id="queryUsers" resultType="com.ppmoney.g2.Users">
select *
from tb_users
</select>
<!-- 按照ID查询 -->
<select id="queryUsersById" parameterType="int" resultType="com.ppmoney.g2.Users">
select * from tb_users where id=#{id}
</select>
<!-- 添加用户 -->
<insert id="insertUsers" parameterType="com.ppmoney.g2.Users" >
insert into tb_users(username,password)
values(#{userName},#{password}) <selectKey keyProperty="id" resultType="int" order="AFTER">
select @@identity
</selectKey>
</insert>
<!-- 修改用户 -->
<update id="updateUsers" parameterType="com.ppmoney.g2.Users">
update tb_users
set password=#{password}
where id=#{id}
</update>
<!-- 删除用户 -->
<delete id="deleteUsers" parameterType="int">
delete
from tb_users
where id=#{id}
</delete>
</mapper>

6. sql配置相关.

jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc\:sqlserver\://192.168.1.10\:1433;DatabaseName=pt
jdbc.username=dev
jdbc.password=dev
jdbc.poolMaximumActiveConnections=30 jdbc.minIdle=10
jdbc.maxWait=3000
package com.cnblog.g2;

import com.alibaba.druid.pool.DruidDataSource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource; @Configuration
@MapperScan(basePackages = {"com.cnblog.g2.mapper"})
public class MybatisConfiguration { private static Log logger = LogFactory.getLog(MybatisConfiguration.class); @Autowired
private Environment env; @Bean
public DataSource dataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setPassword(env.getProperty("jdbc.password"));
druidDataSource.setUsername(env.getProperty("jdbc.username"));
druidDataSource.setUrl(env.getProperty("jdbc.url"));
druidDataSource.setDriverClassName(env.getProperty("jdbc.driver"));
druidDataSource.setMaxActive(env.getProperty("jdbc.poolMaximumActiveConnections",Integer.class));
druidDataSource.setMinIdle(env.getProperty("jdbc.minIdle", Integer.class));
druidDataSource.setMaxWait(env.getProperty("jdbc.maxWait", Integer.class));
druidDataSource.setValidationQuery("Select 1");
return druidDataSource;
} @Bean
public SqlSessionFactory sqlSessionFactory(DataSource pooledDataSource) {
try {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(pooledDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapping/*.xml")); return sessionFactory.getObject();
} catch (Exception e) {
logger.error("not install sessionFactory", e);
throw new RuntimeException("not install sessionFactory");
}
} @Bean
public DataSourceTransactionManager transaction(DataSource pooledDataSource) {
return new DataSourceTransactionManager(pooledDataSource);
}
}

或者可以直接在main里调用

@SpringBootApplication
public class App //implements ApplicationContextAware
{ public static void main( String[] args )
{
ApplicationContext applicationContext= SpringApplication.run(App.class,args); Object userService = applicationContext.getBean("userServiceImpl"); ((UserService)userService).insertUsers(new Users("YangT1", "123sd"));
}
}

java的Spring学习3- mybatis的更多相关文章

  1. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  2. spring学习总结(mybatis,事务,测试JUnit4,日志log4j&slf4j,定时任务quartz&spring-task,jetty,Restful-jersey等)

    在实战中学习,模仿博客园的部分功能.包括用户的注册,登陆:发表新随笔,阅读随笔:发表评论,以及定时任务等.Entity层设计3张表,分别为user表(用户),essay表(随笔)以及comment表( ...

  3. Java框架spring 学习笔记(十四):注解aop操作

    回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ...

  4. [Java] Eclipse+Spring学习(一)环境搭建

    转自:http://blog.sina.com.cn/s/blog_7c3736810100qhia.html 最近由于投了一家公司实习,他要java工程师,而我大学3年的精力都花到了ASP.NET和 ...

  5. Java框架spring 学习笔记(十二):aop实例操作

    使用aop需要在网上下载两个jar包: aopalliance.jar aspectjweaver.jar 为idea添加jar包,快捷键ctrl+shift+alt+s,打开添加jar包的对话框,将 ...

  6. Java框架spring 学习笔记(十):bean管理(注解和配置文件混合使用)

    配置文件和注解混合使用 创建对象操作使用配置文件方式实现 注入属性的操作使用注解方式实现 编写BookDao.java和OrderDao.java文件 BookDao.java package com ...

  7. Java框架spring 学习笔记(九):Spring的bean管理(@Required、@Component、@Autowired、@Resource注解)

    注解:代码里面特殊的标记,使用注解可以完成相关功能 注解写法:@注解名称(属性名.属性值) @Required 用在set方法上,一旦用了这个注解,那么容器在初始化bean的时候必须要进行set,也就 ...

  8. Java框架spring 学习笔记(八):注入对象类型属性

    使用set方法注入对象属性 编写UserDao.java文件 package com.example.spring; public class UserDao { public void print( ...

  9. Java框架spring 学习笔记(六):属性注入

    属性注入:创建对象的时候,向类里面的属性设置值. Java属性注入有三种方法: 使用set方法注入 有参数构造注入 使用接口注入 Spring框架里面的属性注入方式 有参数构造属性注入 set方法属性 ...

随机推荐

  1. Debian上SCST的设置

    一)创建SCST,无infiniband支持 1:载入最小化支持 #aptitude install build-essentials linux-headers checkinstall #wget ...

  2. linux下方便的录屏命令

    linux下方便的录屏命令   ffmpeg -f x11grab -s 1024*768 -r 20 -i :0.0 -sameq ~/recode.mpg -r后是刷新屏率,   推出直接Ctrl ...

  3. VS运行release版本正常,直接执行exe文件会出现问题

    博客转载自:https://blog.csdn.net/weixinhum/article/details/39962483 检测了一下自己的程序,发现程序先后开启了两个线程,并且对两个线程的启动顺序 ...

  4. Hyperledger Fabric开发

    打开Hyperledger Fabric在线开发文档:https://hyperledger-fabric.readthedocs.io 建议在Mac或Linux环境下操作,因为文档基本上是按照Mac ...

  5. 基于 EntityFramework 的数据库主从读写分离架构(1) - 原理概述和基本功能实现

        回到目录,完整代码请查看(https://github.com/cjw0511/NDF.Infrastructure)中的目录:      src\ NDF.Data.EntityFramew ...

  6. 为什么要有http响应码

    其实还是比较容易理解的.这就和你去小卖部买东西一样,老板,我想要一袋大米,那老板先得回答有还是没有,还是说我们这没有,去其它地方买去吧,得先给个说法,这个说法就是http相应码,有了http响应码之后 ...

  7. 编译boost,去掉不使用的组件

    说明:下面内容仅针对Linux环境(boost官网为:http://www.boost.org/,可从这里下载它的源代码包,这里要求下载.tar.gz包,而非.7z..zip或bz2包). 在当前目录 ...

  8. MySQL性能调优与架构设计——第8章 MySQL数据库Query的优化

    第8章 MySQL数据库Query的优化 前言: 在之前“影响 MySQL 应用系统性能的相关因素”一章中我们就已经分析过了Query语句对数据库性能的影响非常大,所以本章将专门针对 MySQL 的 ...

  9. EBS取Web字段SQL操作文档

    1)  安全性—>责任-à定义 在这个路径下,输入责任名称,可以查询这个责任的请求组的名称 2)  organization_id 和 org_id的功能 3)  查找网页上的字段 Naviga ...

  10. HTML5+CSS3从入门到精通 中文pdf版​

    HTML5+CSS3从入门到精通是通过基础知识+中小实例+综合案例的方式,讲述了用HTML5+ CSS3设计构建网站的必备知识,相对于专业指南.高级程序设计.开发指南同类图书,本书是一本适合快速入手的 ...