博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring和MyBatis环境整合
阅读量:6304 次
发布时间:2019-06-22

本文共 5098 字,大约阅读时间需要 16 分钟。

hot3.png

Spring:

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

两个重要模块:Spring 面向方面编程(AOP)和控制反转 (IOC) 容器。

控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。

容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。在典型的 IOC 场景中,容器创建了所有对象,并设置必要的属性将它们连接在一起,决定什么时间调用方法。

   MyBatis:

    

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及
结果集的检索。
 
MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java
对象)映射成数据库中的记录。

   开始整合Spring和MyBatis:

  1、在Eclipse里新建一个web项目,导入我们需要的jar包,可以在这里下载:

  jar列表截图:

  

  2、创建一个简单的数据库(springmybaitis)和数据表(user---id,username,password)。

  

  3、以用户管理为例,创建model和dao.

  文件列表截图如下:

  

  model----User.java

  

复制代码
1 package com.springMyBatis.system.model; 2  3 public class User {
4     private int id; 5     private String username; 6     private String password; 7     public User(){} 8     public int getId() {
9         return id;10    }11     public void setId(int id) {
12         this.id = id;13    }14     public String getUsername() {
15         return username;16    }17     public void setUsername(String username) {
18         this.username = username;19    }20     public String getPassword() {
21         return password;22    }23     public void setPassword(String password) {
24         this.password = password;25    }26     public String toString(){
27         return "User[id="+id+" , username="+username+" , password="+password+"]";28    }29     30 31 }
复制代码

 

 dao------接口UserDao.java 

复制代码
1 package com.springMyBatis.system.dao; 2  3 import com.springMyBatis.system.model.User; 4  5 public interface UserDao {
6     public User getUser(User user); 7     public void addUser(User user); 8     public void updateUser(User user); 9     public void deleteUser(int UserId);10 }
复制代码

 

  dao-----UserDao.xml

复制代码
1 
2   4
  5
  8
  9   INSERT INTO user (id,username,password) VALUES (#{id},#{username},#{password})   10
 11
 12     UPDATE user SET password=#{password} WHERE id=#{id}   13
 14
 15     DELETE FROM user WHERE id=#{id}   16
 17
 
复制代码

  4、Spring配置文件----ApplicationContext.xml

  

复制代码
1 
2
 14
 15    
 16    
 17        
org.gjt.mm.mysql.Driver
 18    
 19    
 20        
jdbc:mysql://localhost:3306/springmybaitis?useUnicode=true&characterEncoding=UTF-8
 21        
22    
 23    
 24        
root
 25    
 26    
 27        
123456
 28    
 29
 30
 31    
 32    
 33
 34
 35    
 36    
 37
 38
 
复制代码

 

  5、MyBatis的配置文件------mybatis-config.xml

  

复制代码
1 
2  5
 6    
 7        
 8    
 9
 
复制代码

 

  6、测试

  首先测试添加一条数据:

  

复制代码
1 package com.springMyBatis.system.test; 2  3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5  6 import com.springMyBatis.system.dao.UserDao; 7 import com.springMyBatis.system.model.User; 8  9 public class UserController {
10     11     /**12     * @param args13      */14     public static void main(String[] args) {
15         ApplicationContext ctx=null;16         ctx=new ClassPathXmlApplicationContext("applicationContext.xml");17         UserDao userDao=(UserDao) ctx.getBean("userDao");18         User user=new User();19         //添加两条数据20         user.setId(1);21         user.setUsername("Jessica");22         user.setPassword("123");23        userDao.addUser(user);24         user.setId(2);25         user.setUsername("Jessica2");26         user.setPassword("123");27        userDao.addUser(user);28         System.out.println("添加成功");29         //查询数据30         user.setUsername("Jessica");31         user.setPassword("123");32        System.out.println(userDao.getUser(user).toString());33         user.setUsername("Jessica2");34         user.setPassword("123");35        System.out.println(userDao.getUser(user).toString());36         //修改数据37         user.setId(2);38         user.setPassword("802");39        userDao.updateUser(user);40         System.out.println("修改成功");41         //删除数据42         userDao.deleteUser(1);43         System.out.println("删除成功");44         45    }46 47 }
复制代码

 

  

  最后数据库只剩一条数据:

  

 

    结合Spring和MyBatis很简单,对于一些小一些的项目,想要做到精致易掌控,这两个框架的结合足以。虽然现在Hibernate也很红,但是感觉它内部很神秘,很难配置,也不好优化,就是有种不敢下手的感觉。虽说Hibernate配置有点难,但是搭好了环境后,开发效率还是很高的,只需要配置一下表关系什么的就Ok了。但是比如说查个数据什么的,很难掌控的到细节。Mybatis就可以控制sql的细节,虽然写sql语句比较耗费时间,也需要你的sql基础,但是也正因为这样,使用MyBatis的人的sql水平才会提高啊,看到我们项目经理二三分钟弄出一个看似复杂却又很效率的sql语句,感觉很帅,很牛的样子。这么分析起来,两者皆不可抛,结合学习一下。本文只是简单的实例,在*dao.xml的配置文件里,还有其他帮助优化和简化sql,帮助提高效率的一些知识,有待我们进一步学习呢。还有,也可以通过结合Spring自动扫描装配dao等,也可以为配置文件减轻负担不少,期待下一次更成熟的使用。

转载于:https://my.oschina.net/yilin007/blog/644823

你可能感兴趣的文章
spring-通过ListFactory注入List
查看>>
一种基于SDR实现的被动GSM嗅探
查看>>
阿里云ECS每天一件事D1:配置SSH
查看>>
SQL Server 性能调优(性能基线)
查看>>
uva 10801 - Lift Hopping(最短路Dijkstra)
查看>>
[Java Web]servlet/filter/listener/interceptor区别与联系
查看>>
POJ 2312Battle City(BFS-priority_queue 或者是建图spfa)
查看>>
从零开始学MVC3——创建项目
查看>>
CentOS 7 巨大变动之 firewalld 取代 iptables
查看>>
延时任务和定时任务
查看>>
linux下的权限问题
查看>>
教你如何使用Flutter和原生App混合开发
查看>>
Spring Boot 整合redis
查看>>
CSS hover改变背景图片过渡动画生硬
查看>>
JDBC(三)数据库连接和数据增删改查
查看>>
淘宝应对"双11"的技术架构分析
查看>>
ssh
查看>>
订单的子单表格设置颜色
查看>>
Office365 Exchange Hybrid 番外篇 ADFS后端SQL群集(一)
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>