-
避免重复秒杀,(订单表使用商品ID和用户手机号码作为联合主键;插入订单表数据时使用ignore,在主键冲突的时候,返回0,即不插入数据。)
查看全部 -
3. 配置sqlSessionFactory对象 会话工厂
<!--3.配置sqlSessionFactory对象-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--注入数据库连接池-->
<property name="dataSource" value="dataSource"/>
<!--配置mybatis全局配置文件:mybatis-config.xml-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<!--扫描entity包,使用别名-->
<property name="typeAliasesPackage" value="org.seckill.entity"/>
<!--扫描sql配置文件:mapper需要的xml文件-->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
查看全部 -
2. 配置数据库连接池
<!--2.数据库连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!--配置连接池基本属性-->
<property name="driverClass" value="${driver}"/>
<property name="jdbcUrl" value="${url}"/>
<property name="user" value="${username}"/>
<property name="password" value="${password}"/>
<!--c3p0连接池的私有属性-->
<property name="maxPoolSize" value="30"/>
<property name="minPoolSize" value="10"/>
<!--关闭链接后不自动commit-->
<property name="autoCommitOnClose"value="false"/>
<!--获取链接超时时间-->
<property name="checkoutTimeout" value="1000"/>
<!--当获取连接失败时重试次数-->
<property name="acquireRetryAttempts" value="2"/>
</bean>
查看全部 -
1. 配置数据库相关参数
查看全部 -
1) 更少的编码:只写接口,不写实现。接口能说明参数,行为,结果集。
2) 更少的配置:
别名(原来是包名+类名 mybatis只需要写原生的类名)
自动扫描配置文件:XML文件
Mapper自动实现DAO接口,并自动注入spring容器
3) 足够的灵活性:自己定制SQL,自由传参,结果集自动赋值
XML提供SQL + DAO接口提供Mapper
查看全部 -
通过MyBatis实现实现SuccessKilledDao接口
MyBatis核心的点在于可以自由控制SQL
后续MyBatis如何整合SPRING以及如何编写单元测试
查看全部 -
【mapper-SeckillDao.xml】
Resource –> new -> directory创建一个目录放置mybatis的sql的映射”mapper”
在mapper下创建映射关系。Mapper->new->file创建SeckillDao.xml(命名规范:DAO的名字.xml). 为DAO方法的接口提供sql语句
实现SeckillDao.xml
reduceNumber减库存
queryById根据id查询秒杀对象
queryALL根据偏移量查询秒杀商品列表
查看全部 -
【mybatis-config.xml】
Resource –> new -> file 创建一个mybatis全局的配置文件”mybatis-config.xml”
从官方文档找到mybatis的全局配置 XML的一个标签约束
<configuration>
<settings>
查看全部 -
[SuccessKilledDao]
InsertSuccssKilled 插入购买明细,可过滤重复
queryByIdWithSeckill根据id查询SuccessKilled并携带秒杀产品对象实体
查看全部 -
实现DAO的接口
[SeckillDao]
reduceNumber减库存
queryById根据id查询秒杀对象
queryALL根据偏移量查询秒杀商品列表
查看全部 -
mvn archetype:create -DgroupId=org.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp
-DgroupId=org.seckill -DartifactId=seckill:标注项目的坐标
org.seckill:项目名
-DarchetypeArtifactId=maven-archetype-webapp:使用webapp原型去创建项目
使用以上命令项目创建失败
mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp
使用以上命令项目创建成功
查看全部 -
mvn archetype:generate -DgroupId=org.seckill -DartifactId=seckill -DarchetypeArtifactId=maven-archetype-webapp
创建成功
查看全部 -
myBatis整合Spring目标
查看全部 -
初始的自增id设为1000
AUTO_INCREMENT=1000
查看全部 -
MySql有多重存储引擎供我们使用,但是可以支持事务的存储引擎只有InnoDB
查看全部
举报