Spring boot 数据库配置之Mybaties+Mysql

Spring boot 数据库配置之Mybaties+Mysql

说明:Mybaties+Mysql,两种方式注解、XML文件

配置介绍:

pom.xml配置:

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
         <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>

   application.properties配置:   

# \u5B9E\u4F53\u7C7B\u8DEF\u5F84
mybatis.type-aliases-package=com.hwlin.spring.boot.demo.domain

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.0.1:3308/hwlin_demo?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root

Application.java注解:

@SpringBootApplication
@MapperScan("com.hwlin.spring.boot.demo.mapper")
public class SpringBootDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootDemoApplication.class, args);
	}
}

一、注解方式

Mapper接口(数据层接口),通过注解方式实现与数据库交互,进行数据操作。

public interface UserMapper {

        @Select("SELECT * FROM users")
        @Results({ @Result(property = "userSex", column = "user_sex", javaType = UserSexEnum.class), @Result(property = "nickName", column = "nick_name") })
        List<UserEntity> getAll();

        @Select("SELECT * FROM users WHERE id = #{id}")
        @Results({ @Result(property = "userSex", column = "user_sex", javaType = UserSexEnum.class), @Result(property = "nickName", column = "nick_name") })
        UserEntity getOne(Long id);

        @Insert("INSERT INTO users(userName,passWord,user_sex) VALUES(#{userName}, #{passWord}, #{userSex})")
        void insert(UserEntity user);

        @Update("UPDATE users SET userName=#{userName},nick_name=#{nickName} WHERE id =#{id}")
        void update(UserEntity user);

        @Delete("DELETE FROM users WHERE id =#{id}")
        void delete(Long id);

    }

说明:

@Select:用于查询数据

@Insert:用于插入数据

@Update:用于修改数据

@Delete:用于删除数据

 

二、XML配置方式

application.properties增加mybaties、mapper配置。

mybatis.config-location=classpath:mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

mybatis-config.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<settings>
		<!-- 设置本地缓存范围 session:就会有数据的共享 statement:语句范围 (这样就不会有数据的共享 ) defalut:session -->
		<setting name="localCacheScope" value="SESSION"/>
		<!-- 使用全局的映射器启用或者禁用缓存。 -->
		<setting name="cacheEnabled" value="true"/>
		<!-- 全局启用或禁用延时加载,当禁用时,所有关联对象都会即时加载。 -->
		<setting name="lazyLoadingEnabled" value="true" />
		<!-- 当启用时,有延时加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。 -->
		<setting name="aggressiveLazyLoading" value="true"/>
		<!-- 是否允许单条sql 返回多个数据集 (取决于驱动的兼容性) default:true -->
		<setting name="multipleResultSetsEnabled" value="true"/>
		<!-- 是否可以使用列的别名 (取决于驱动的兼容性) default:true -->
		<setting name="useColumnLabel" value="true"/>
		<!-- 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行。 default:false -->
		<setting name="useGeneratedKeys" value="true"/>
		<!-- 指定 MyBatis 如何自动映射 数据基表的列 NONE:不隐射 PARTIAL:部分 FULL:全部 -->
		<setting name="autoMappingBehavior" value="PARTIAL"/>
		<!-- 这是默认的执行类型(SIMPLE: 简单; REUSE: 执行器可能重复使用prepared statements语句;BATCH: 执行器可以重复执行语句和批量更新) -->
		<setting name="defaultExecutorType" value="SIMPLE"/>
		<!-- 这使用驼峰命名法转换字段 -->
		<setting name="mapUnderscoreToCamelCase" value="true"/>
		<!-- 设置但JDBC类型为空时,某些驱动程序 要指定值,default:OTHER,插入空值时不需要指定类型 -->
		<setting name="jdbcTypeForNull" value="NULL"/>
	</settings>

	<typeAliases>
		<typeAlias alias="Integer" type="java.lang.Integer" />
		<typeAlias alias="Long" type="java.lang.Long" />
		<typeAlias alias="String" type="java.lang.String" />
		<typeAlias alias="HashMap" type="java.util.HashMap" />
		<typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" />
		<typeAlias alias="ArrayList" type="java.util.ArrayList" />
		<typeAlias alias="LinkedList" type="java.util.LinkedList" />
		<typeAlias alias="Date" type="java.util.Date" />
	</typeAliases>
	
</configuration>

*Mapper.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.hwlin.spring.boot.demo.mapper.LegalPersonInfoMapper">
	<resultMap id="LegalPresonMap" type="com.hwlin.spring.boot.demo.domain.LegalPersonInfo">
		<id column="lp_id" property="lpId"/>
		<result column="lp_name" property="lpName"/>
		<result column="insert_time" property="insertTime"/>
		<result column="update_time" property="updateTime"/>
	</resultMap>
	
	<sql id="templetes">
		lp_id, lp_name, insert_time, update_time
	</sql>
	
	<select id="getAll" resultMap="LegalPresonMap">
		SELECT <include refid="templetes"></include>
		FROM legal_person_info
	</select>
</mapper>

*Mapper接口实现:

接口方法名、传入参数、返回值,都根据*Mapper.xml配置的<select>、<update>、<insert>、<delete>进行定义,方法名必须与其id值一致。

public interface LegalPersonInfoMapper {

    List<LegalPersonInfo> getAll();
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值