Day01【環境搭建】

本項目是根據學習尚硅谷項目所寫個人筆記。希望自己能夠熟練掌握~

環境搭建準備

sql文件:

CREATE DATABASE `project_crowd` CHARACTER SET utf8;
use project_crowd;
drop table if exists t_admin;
create table t_admin
(
id int not null auto_increment, # 主鍵
login_acct varchar(255) not null, # 登錄賬號
user_pswd char(32) not null, # 登錄密碼
user_name varchar(255) not null, # 暱稱
email varchar(255) not null, # 郵件地址
create_time char(19), # 創建時間
primary key (id)
);

通過以上sql文件創建數據庫表,然後使用maven的mybatis逆向工程
pom配置:

<!-- 依賴MyBatis 核心包-->
<dependencies>
	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis</artifactId>
		<version>3.2.8</version>
	</dependency>
</dependencies>
<!-- 控制Maven 在構建過程中相關配置-->
<build>
	<!-- 構建過程中用到的插件-->
	<plugins>
		<!-- 具體插件,逆向工程的操作是以構建過程中插件形式出現的-->
		<plugin>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-maven-plugin</artifactId>
			<version>1.3.0</version>
			<!-- 插件的依賴-->
			<dependencies>
				<!-- 逆向工程的核心依賴-->
				<dependency>
					<groupId>org.mybatis.generator</groupId>
					<artifactId>mybatis-generator-core</artifactId>
					<version>1.3.2</version>
				</dependency>
				<!-- 數據庫連接池-->
				<dependency>
					<groupId>com.mchange</groupId>
					<artifactId>c3p0</artifactId>
					<version>0.9.2</version>
				</dependency>
				<!-- MySQL 驅動-->
				<dependency>
					<groupId>mysql</groupId>
					<artifactId>mysql-connector-java</artifactId>
					<version>5.1.8</version>
				</dependency>
			</dependencies>
		</plugin>
	</plugins>
</build>

generatorConfig.xml

<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
	<!-- mybatis-generator:generate -->
	<context id="atguiguTables" targetRuntime="MyBatis3">
		<commentGenerator>
			<!-- 是否去除自動生成的註釋true:是;false:否-->
			<property name="suppressAllComments" value="true" />
		</commentGenerator>
		<!--數據庫連接的信息:驅動類、連接地址、用戶名、密碼-->
		<jdbcConnection
			driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://localhost:3306/project_crowd"
			userId="root"
			password="root">
		</jdbcConnection>
	
		<!-- 默認false,把JDBC DECIMAL 和NUMERIC 類型解析爲Integer,爲true 時把JDBC DECIMAL和NUMERIC 類型解析爲java.math.BigDecimal -->
		<javaTypeResolver>
			<property name="forceBigDecimals" value="false" />
		</javaTypeResolver>
		<!-- targetProject:生成Entity 類的路徑-->
		<javaModelGenerator targetProject=".\src\main\java"
		targetPackage="com.atguigu.crowd.entity">
			<!-- enableSubPackages:是否讓schema 作爲包的後綴-->
			<property name="enableSubPackages" value="false" />
			<!-- 從數據庫返回的值被清理前後的空格-->
			<property name="trimStrings" value="true" />
		</javaModelGenerator>
	
		<!-- targetProject:XxxMapper.xml 映射文件生成的路徑-->
		<sqlMapGenerator targetProject=".\src\main\java"
		targetPackage="com.atguigu.crowd.mapper">
			<!-- enableSubPackages:是否讓schema 作爲包的後綴-->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>
		<!-- targetPackage:Mapper 接口生成的位置-->
		<javaClientGenerator type="XMLMAPPER"
		targetProject=".\src\main\java"
		targetPackage="com.atguigu.crowd.mapper">
			<!-- enableSubPackages:是否讓schema 作爲包的後綴-->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		<!-- 數據庫表名字和我們的entity 類對應的映射指定-->
		<table tableName="t_admin" domainObjectName="Admin" />
	</context>
</generatorConfiguration>

執行逆向生成操作的Maven 命令:

mybatis-generator:generate

Spring 整合MyBatis

在這裏插入圖片描述

在子工程中加入搭建環境所需要的具體依賴

子工程:選擇component 工程。原因是具體依賴和component 工程相關。

<!-- Spring 依賴-->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-orm</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-webmvc</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
	<groupId>org.aspectj</groupId>
	<artifactId>aspectjweaver</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/cglib/cglib -->
<dependency>
	<groupId>cglib</groupId>
	<artifactId>cglib</artifactId>
</dependency>
<!-- MySQL 驅動-->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 數據源-->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
</dependency>
<!-- MyBatis -->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis</artifactId>
</dependency>
<!-- MyBatis 與Spring 整合-->
<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-spring</artifactId>
</dependency>
<!-- MyBatis 分頁插件-->
<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
</dependency>
<!-- Spring 進行JSON 數據轉換依賴-->
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
</dependency>
<!-- JSTL 標籤庫-->
<dependency>
	<groupId>jstl</groupId>
	<artifactId>jstl</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
	<groupId>com.google.code.gson</groupId>
	<artifactId>gson</artifactId>
</dependency>

準備jdbc.properties

在這裏插入圖片描述

jdbc.user=root
jdbc.password=root
jdbc.url=jdbc:mysql://localhost:3306/project_crowd?useUnicode=true&characterEncoding=UTF-8
jdbc.driver=com.mysql.jdbc.Driver

創建Spring 配置文件專門配置Spring 和MyBatis 整合相關

創建全局mybatis-config.xml文件 和 spring-persist-mybatis.xml:
在這裏插入圖片描述

在Spring 的配置文件中加載jdbc.properties 屬性文件

spring-persist-mybatis.xml:

<!-- 加載jdbc.properties -->
<context:property-placeholder location="classpath:jdbc.properties"/>

配置數據源

spring-persist-mybatis.xml:

<!-- 配置數據源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
	<!-- 連接數據庫的用戶名-->
	<property name="username" value="${jdbc.user}"/>
	<!-- 連接數據庫的密碼-->
	<property name="password" value="${jdbc.password}"/>
	<!-- 目標數據庫的URL 地址-->
	<property name="url" value="${jdbc.url}"/>
	<!-- 數據庫驅動全類名-->
	<property name="driverClassName" value="${jdbc.driver}"/>
</bean>

測試從數據源中獲取數據庫連接

創建Spring 的Junit 測試類

// 指定Spring 給Junit 提供的運行器類
@RunWith(SpringJUnit4ClassRunner.class)
// 加載Spring 配置文件的註解
@ContextConfiguration(locations = {"classpath:spring-persist-mybatis.xml"})
public class CrowdSpringTest {
	@Autowired
	private DataSource dataSource;
	@Test
	public void testDataSource() throws SQLException {
		// 1.通過數據源對象獲取數據源連接
		Connection connection = dataSource.getConnection();
		// 2.打印數據庫連接
		System.out.println(connection);
	}
}

配置SqlSessionFactoryBean

<!-- 配置SqlSessionFactoryBean -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 裝配數據源-->
	<property name="dataSource" ref="dataSource"/>
	<!-- 指定MyBatis 全局配置文件位置-->
	<property name="configLocation" value="classpath:mybatis-config.xml"/>
	<!-- 指定Mapper 配置文件位置-->
	<property name="mapperLocations" value="classpath:mybatis/mapper/*Mapper.xml"/>
</bean>

配置MapperScannerConfigurer

<!-- 配置MapperScannerConfigurer -->
<!-- 把MyBatis 創建的Mapper 接口類型的代理對象掃描到IOC 容器中-->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<!-- 使用basePackage 屬性指定Mapper 接口所在包-->
	<property name="basePackage" value="com.atguigu.crowd.mapper"/>
</bean>

測試是否可以裝配XxxMapper 接口並通過這個接口操作數據庫

@Autowired
private AdminService adminService;
@Test
public void testAdminMapperAutowired() {
	Admin admin = adminService.getAdminById(1);
	System.out.println(admin);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章