1、开发工具
1、1:idea2017
1、2:jdk8
1、3:spring+mybatisplus
2、搭建项目环境
- 创建一个java项目
- 导入jar包
- 引入spring的配置文件、连接数据库的properties文件、mybatis的配置文件以及日志文件(mybatis的配置文件可要可不要,那为什么还需要在spring的配置文件中配置mybatis的配置文件呢?因为你可以在mybatis的配置文件中配置驼峰命名、懒加载等)
applicationContext.xml:
<!--
配置包扫描
-->
<context:component-scan base-package="com.java"></context:component-scan>
<!--
先配置连接数据库需要的数据
1、加载资源文件
2、配置连接数据
-->
<context:property-placeholder location="classpath:db.properties"></context:property-placeholder>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${mysql.driver}"></property>
<property name="url" value="${mysql.url}"></property>
<property name="username" value="${mysql.username}"></property>
<property name="password" value="${mysql.password}"></property>
</bean>
<bean id="sqlSessionFactory" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
<property name="typeAliasesPackage" value="com.java.model"></property>
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
<property name="basePackage" value="com.java.mapper"></property>
</bean>
<!--
事务的配置
-->
<bean id="transactionMannger" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- spring事务配置 -->
<tx:advice id="txAdvice" transaction-manager="transactionMannger">
<!-- 事务属性配置 -->
<tx:attributes>
<!-- DQL :查询操作,配置只读事务 -->
<tx:method name="get*" read-only="true" isolation="REPEATABLE_READ" propagation="REQUIRED"/>
<tx:method name="select*" read-only="true" isolation="REPEATABLE_READ" propagation="REQUIRED"/>
<tx:method name="find*" read-only="true" isolation="REPEATABLE_READ" propagation="REQUIRED"/>
<tx:method name="query*" read-only="true" isolation="REPEATABLE_READ" propagation="REQUIRED"/>
<!-- 其他 SQL :非只读事务 -->
<tx:method name="*" read-only="false" isolation="REPEATABLE_READ" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!--
aop配置
切面
1、切点
2、切面
-->
<aop:config>
<aop:pointcut id="pt" expression="execution(* com.java.service..*.*(..))"></aop:pointcut>
<aop:advisor advice-ref="txAdvice" pointcut-ref="pt"></aop:advisor>
</aop:config>
db.properties
日志文件以及mybatis的配置文件就不展示了
- 数据库的表的创建以及数据的准备
-- 创建表
create table t_mp(
tid INT(10) primary key auto_increment,
tname varchar(10) not null
)
-- 准备数据
insert into t_mp values
(default,"张三"),
(default,"李四"),
(default,"王五")
- 创建实体类
@TableName("t_mp") //不加这个注解默认找mp表,加了这个注解就是找指定指定的表
public class Mp implements Serializable{
@TableId(type = IdType.AUTO)//对应表的主键,自增
private Integer tid;
private String tname;
public Mp(Integer tid, String tname) {
this.tid = tid;
this.tname = tname;
}
public Mp() {
}
...
-
创建mapper
在mapper接口中需要继承 BaseMapper这个接口,Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能。
public interface MpMapper extends BaseMapper<Mp> {
}
-
创建测试类测试
查询:
结果:
添加:
结果:
删除:
结果:
修改:
结果: