1.ssm
1.1导包
<!--数据库操作-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--负责在容器中找东西-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<!--创建一个容器-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<!--读spring.xml new类-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<!--相当于servlet-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<!--连接池-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<!--oracle-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
<!--事务管理器-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<!--用于事务管理器连接数据库-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>
<!--mybatis和spring连接桥梁-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!--自动转json-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>
<!--自动转json-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<!--自动转json-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
1.2.创建类:
java: entity、dao、services、controller
resources: mapper 、 spring.xml
1.3.spring.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<context:annotation-config></context:annotation-config>
<context:component-scan base-package="com.ksf.ss"></context:component-scan>
<!--启动mvc-->
<mvc:annotation-driven></mvc:annotation-driven>
<!--以下是mybatis的链接数据库的整合-->
<!--配置一个数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@192.168.56.153:1521:orcl"></property>
<property name="username" value="ksf"></property>
<property name="password" value="ok"></property>
<property name="initialSize" value="30"></property>
<property name="maxActive" value="1000"></property>
<property name="maxWait" value="1000"></property>
<property name="minIdle" value="30"></property>
</bean>
<!--自动事务 可以让用户不commit-->
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--自动提交配置-->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
<!--配置spring和mybatis整合-->
<!--这不是mybatis的类,是第三方的 mybatis-spring-->
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations" value="classpath*:mapper/*.xml"></property>
</bean>
<!--扫描所有的dao接口-->
<bean id="scannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ksf.ss.dao"></property>
</bean>
</beans>
1.4.web.xml
<!--通知Tomcat 服务器启动spring和spring MVC-->
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--首先配置spring.xml变量-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<!--启动spring-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--启动spring MVC 将所有 .do 的方法都转为 servlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
1.5.例如
// entity类
public class Bank {
private int id;
private String name;
private int money;
public Bank() {
}
public Bank(int id, String name, int money) {
this.id = id;
this.name = name;
this.money = money;
}
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 getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
}
// dao类
public interface BankDAO {
public List<Bank> findAll();
public List<Bank> findById(int id);
}
// services类
@Service // <bean id = "userService" class = "com.ksf.ss.services.UserService"/>
public class BankService {
@Resource
private BankDAO bdao;
public List<Bank> findAll(){
return bdao.findAll();
}
public List<Bank> find(int id){
return bdao.findById(id);
}
}
// controller类
@RestController // 是总servlet , 所有都返回json
public class InitCtrl {
// 不写名字, spring会自动用类型去获得对象getBean(UserService.class)
@Resource
private BankService bs;
// 给每个方法看成一个小的servlet
@RequestMapping("/init.do")
public List<Bank> init(){
return bs.findAll();
}
@RequestMapping("/find.do")
public List<Bank> find(int id){
return bs.find(id);
}
}
bank.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.ksf.ss.dao.BankDAO">
<select id="findAll" resultType="com.ksf.ss.entity.Bank">
select * from bank
</select>
<select id="findById" resultType="com.ksf.ss.entity.Bank" parameterType="int">
select * from bank where id=#{id}
</select>
</mapper>
2.springboot
2.1 创建过程
- 创建包名 https://start.aliyun.com
- 修改oracle版本
- 修改application.properties 名为application.yml ->编辑
- 创建 entity、dao、services、controller 、 mapper->xxx.xml
2.2 application.yml
#连接数据库配置
spring:
datasource:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@192.168.56.153:1521:orcl
username: ksf
password: ok
#配置mapper变量
mybatis:
mapper-locations: classpath*:mapper/*.xml
# 配置类名简写
type-aliases-package: com.ksf.mysb4.entity
2.3 例如
// entity类
public class Bank {
。。。。
}
// dao类
public interface BankDAO {
public List<Bank> findAll();
public List<Bank> find(int id);
public void insert(Bank bank);
public void update(Bank bank);
}
// services类
@Service
@Transactional // 开启事务
public class BankService {
@Resource
private BankDAO bd;
public List<Bank> findAll(){
return bd.findAll();
}
public List<Bank> find(int id){
return bd.find(id);
}
public void insert(Bank bank){
bd.insert(bank);
}
public void update(Bank bank){
bd.update(bank);
}
}
@RestController
public class BankCtrl {
@Resource
private BankService bs;
@RequestMapping("/findAll")
public List<Bank> findAll(){
return bs.findAll();
}
@RequestMapping("/find")
public List<Bank> find(int id){
return bs.find(id);
}
@RequestMapping("/insert")
public String insert(@RequestBody Bank bank){
bs.insert(bank);
return "OK";
}
@RequestMapping("/update")
public String update(@RequestBody Bank bank){
bs.update(bank);
return "OK";
}
}
@SpringBootApplication
@MapperScan("com.ksf.mysb4.dao") // 扫描所有dao内方法
public class Mysb4Application {
public static void main(String[] args) {
SpringApplication.run(Mysb4Application.class, args);
}
}
bank.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.ksf.mysb4.dao.BankDAO">
<select id="findAll" resultType="bank">
select * from bank
</select>
<select id="find" resultType="bank" parameterType="int">
select * from bank where id=#{id}
</select>
<insert id="insert" parameterType="bank">
insert into bank values (#{id},#{name},#{money})
</insert>
<update id="update" parameterType="bank">
update bank
<set>
<if test="name != null">
name = #{name},
</if>
<if test="money != 0">
money = #{money}
</if>
</set>
<where>
<if test="id != 0">
id=#{id}
</if>
</where>
</update>
</mapper>