本篇的MyBatis采用xml方式配置。
一、搭建框架环境
整个项目结构如下:
jar包下载链接
搭建SSM步骤如下:
(1)准备好三大框架的jar包,如图所示
(2)在Eclipse中创建一个web project ,并把这些jar包粘贴到lib文件夹中。
(3)在src文件夹下自己创建一个连接数据库的文件,命名为db.properties,如图1-2所示
接着在db.properties中配置一下信息:
1.登录数据库账号
2.登录数据库密码
3.数据库连接驱动
4.数据库链接地址
具体代码实例如下:
user=root
passWord=123456
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test1
(4) 在src文件夹下自己创建一个Spring框架的配置文件,命名为application.xml,如图1-3所示
配置代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- c3p0连接池 -->
<context:property-placeholder location="classpath:db.properties"/>
<!--所有带${}里面写的内容实在db.properties文件中起的名字。-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="${user}"/>
<property name="driverClass" value="${driverClass}"/>
<property name="password" value="${passWord}"/>
<property name="jdbcUrl" value="${url}"/>
</bean>
<!-- 配置SqlSessionFactory 用于加载mybatis框架,持久层的方法可以通过映射直接找到对应的Mapper文件里面的SQL语句-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!---name="dataSource"固定对象名,ref是引用的作用,此句代表只想有一个id为“dataSource”的源-->
<property name="dataSource" ref="dataSource"/>
<!--mapperLocations属性使用一个资源位置的list,这个属性可以用来指定MyBatis的XML映射器文件的位置,会加载所指定路径下所有MyBatis的SQL映射文件-->
<property name="mapperLocations">
<list>
<value>classpath:com/mr/mapper/*-Mapper.xml</value>
</list>
</property>
<!--配置实体类包路径,其作用在于,以后在写入Mapper文件中时,如果参数或返回值是实体类对象,可以直接写实体类名字,不需要写全类名-->
<property name="typeAliasesPackage" value="com.mr.entity"/>
</bean>
<!-- 自动配置dao层(dao层的Mapper可以直接通过spirng注入) -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.mr.mapper"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<!-- 自动扫描bean ,把做了注解的类转为bean(使用这句话就可以用spring注解) -->
<context:component-scan base-package="com.mr"/>
<context:annotation-config />
<!-- 事务配置 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
二、创建实体类
数据库表结构如下:
SQL创建代码:
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50513
Source Host : localhost:3306
Source Database : test
Target Server Type : MYSQL
Target Server Version : 50513
File Encoding : 65001
Date: 2018-11-16 09:28:49
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `tb_user`
-- ----------------------------
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
`id` int(11) DEFAULT NULL,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`sex` varchar(50) DEFAULT NULL,
`question` varchar(50) DEFAULT NULL,
`answer` varchar(50) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES (null, '1', '1', '鐢�', '1', '1', '1');
-- ----------------------------
-- Table structure for `users`
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`uId` int(11) NOT NULL AUTO_INCREMENT,
`uName` varchar(255) DEFAULT NULL,
`uAge` int(11) DEFAULT NULL,
`uAddress` varchar(255) DEFAULT NULL,
`uTel` varchar(255) DEFAULT NULL,
PRIMARY KEY (`uId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of users
-- ----------------------------
根据这张表我们创建一个java实体类,并在里面声明私有属性和对应的公有方法。
package com.mr.entity;
import org.apache.ibatis.type.Alias;
import org.springframework.stereotype.Component;
@Alias("usersBean")