这是控制器 也就是servlet
spring早于mybatis
要将spring 和 mybatis 整合到一起
spring和mybatis的搭桥 不可以缺
导入spring transaction 就不用 手动commit了
ref是引用别人的类 把类对象引入
value 是字符串属性 塞入字符串就好
省略这些步骤
spring间接管理mybatis
中小型项目用快捷工具一搞
大型项目还是要用到很多配置xml
工具越复杂 越灵活
固定套路
代码
<?xml version="1.0" encoding="UTF-8"?>
<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.njbdqn.ss"></context:component-scan>
<!--启动springmvc的注解模式-->
<mvc:annotation-driven></mvc:annotation-driven>
<!--以下是mybatis连接数据库的整合-->
<!--配置一个数据源 druid链接池配置-->
<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.100.151:1521:orcl"></property>
<property name="username" value="cm"></property>
<property name="password" value="ok"></property>
<property name="initialSize" value="30"></property>
<property name="maxActive" value="1000"></property>
<property name="minIdle" value="30"></property>
<property name="maxWait" value="100000"></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的SqlSessionFactory 这是第三方的一个类-->
<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.njbdqn.ss.dao"></property>
</bean>
</beans>
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<!--通知tomcat 服务器启动spring和springmvc-->
<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>
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>org.example</groupId>
<artifactId>ss</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>ss Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>4.3.8.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
<!-- 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>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.8</version>
</dependency>
</dependencies>
<build>
<finalName>ss</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
bank.xml
效果
这里查不到值的原因在于 数据库里有四个id=4 的数据 但返回只能一个所以报错
Spring boot
包都不用导了
springboot
改一下pom.xml文件
记得修改几个地方 setting javacompiler 还有product structure 甚至setting中的maven看下
这些要写在小叶子里面
改成
SSM 根据项目 项目用SSM springboot 看设计师规定
能用springboot 就不用ssm,作为整个项目工程 有个架构师存在的。
项目很小只要暴露数据接口 就用boot
如果项目 业务需求有一天会变得非常庞大。 灵活性要 就考虑ssm
springboot 中小型公司 规模小
一般暴露数据接口
真正大型项目 还是微服务 可以用注释语法。
学java的人到后期一定要学习微服务! 学完这个才知道为什么可以这么懒
现在也基本不会有SSH
外面见到的基本都是SSM
微服务 就是小模块 微小的服务 拆成很多小块 用的时候临时拼
除了设计模式 还有算法 还可以折腾java虚拟机 可以越变越变态
作为框架 高级框架而讲 springcloud是最高级的
springboot玩法
效果
不写getset 会导致没有序列化错误
这里空格要按照规范
三层结构 控制层,业务逻辑服务层 ,dao层 数据层(数据链路层)
classpath 当前工程路径下
结构永远是三层结构
SSM和boot的底层不必去研究了!
这个底层源码太花时间了 要动手写 写一遍起码小半个月 要明白还不容易!
知道三层结构 要想明白MVC是什么 能把活干了就行!!
mybatis拼 语句
能够实现这六句话效果
粗暴简单。增删改查 才需要
如果单单查可以不写这个
java的人
这些写个100多遍
基本功增删改查还是要练练得 狂练10遍 多换 几张表练练
最后看看能不能两表相连搞出来
增加增删改查功能
很多时候以后是面向百度编程
IDEA内窗口快速切换快捷键
ctrl加tap
专门生成数据手段
前端怎么点页面 把日志偷偷摸摸送进来?!
埋点
月薪三万要6年?!
最好的应该先写在redis 到晚上再转
前端埋点根据用户特定制造的
数据埋点 需要前端和后端的人配合
我是对数据分析
一种是数据库大量数据
第二是埋点提供大量数据,甲方提供用户行为日志, 他们有埋点。
大数据工程师不需要了解怎么埋点的过程,每天生成一个日志文件,最起码你见过一个就行
主要是你要知道这一亿条数据怎么生成的!!
大数据工程师 了解下 数据源怎么来的就行了! 怎么来的用户信息, 是埋了点的
后期就可以挖掘分析了!
最起码要能讲出来。
数据三个来源 1数据库源(用的最多)
2埋点(知道怎么来的)
3
前端用ajax 后端用 先传到redis 晚上再慢慢 用randomaccess 传
我们是用数据的
一个小时内 无论ssm还是boot 增删改查到数据库 写完
效果图