MyBiats
-------实现数据的持久化(数据存放在磁盘中,数据库系统进行管理)
一:搭建MyBiats的环境
1)搭建数据库环境(MySQL)
2)项目中引入MyBiats依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
3)与SPring集成的依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
4)数据库的驱动的依赖(使用的是mysql)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
*****************数据库的驱动需要与安装的数据库版本相对***************
****5.x版本使用的驱动--com.mysql.jdbc.Driver
***8.x版本使用的驱动--com.mysql.cj.jdbc.Driver
5)jdbc的依赖(访问数据库的URL--》jdbc:mysql://ip地址:3306(端口号)/数据库名)
连接池(DBCP)的配置----解决并发问题
#DBCP
dbcp.initialSize=1
dbcp.maxIdle=1000
dbcp.minIdle=10
dbcp.maxWaitMillis=0
dbcp.timeBetweenEvictionRunsMillis=60000
dbcp.numTestsPerEvictionRun=10
dbcp.minEvictableIdleTimeMillis=300000
dbcp.validationQuery = SELECT 1
dbcp.testWhileIdle = true
dbcp.removeAbandonedTimeout=180
二.如何在项目中使用
前提:创建pojo包
--此包中的Java类与数据库中的表建立联系
--使用MyBiats映射文件,根据模板创建xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cs.zsl.mapper.SystemRoleMapper">
</mapper>
*****映射文件十分重要,(1)实现ORM(2)预设值SQL语句(3) namespace的值是实现与Java对应的接口
xml文件是经过了ssm配置文件中的一个扫描器自动将映射文件读取到内存中
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:cs/zsl/pojo/*.xml"/>
</bean>
注:MyBiats在应用方面的核心是sqlSessionFactory-->用于执行SQL的增删改查操作
value="classpath:cs/zsl/pojo/*.xml"--->所以xml文件应该在pojo包下!!!
1)pojo包中创建java类,与数据库表中的字段对应(ORM)
2)在pojo包中创建java类的xml文件,拷贝xml中的模板进去
3)在mapper包中创建接口,命名方式:类名Mapper
4)修改xml模板中的namespace的值(它的值要是对应的接口文件)
5)在mapper接口中,创建抽象方法,实现数据的操作
6)在xml文件中的<mapper></mapper>标签之间进行语句的写入
<insert id="saveSystemRole" parameterType="cs.zsl.pojo.SystemRole">
insert into sys_role(r_name,r_discrimination) values (#{name},#{introduction})
</insert>(添加语句)
****<insert id=””>的值为mapper接口中的方法名完全相同!!
***<parameterType="cs.zsl.pojo.SystemRole"> parameterType是传入参数类型(此处是传入应该对象,因此是这个对象对应类的位置)
***预设sql语句,#{}是占位符,占位符中放pojo中类的属性名。
7)创建service接口,在里面定义抽象方法
8)实现接口
@Service//为了@Autowired注解的使用,在类前面还需要添加此注解
public class SystemRoleServiceImpl implements SystemRoleService {
@Autowired//注解====实列化对象,因此不在使用new来实列化对象
private SystemRoleMapper roleMapper;//作用为执行数据操作
@Override
public boolean add(SystemRole role) {
return roleMapper.saveSystemRole(role);//对象调用方法
}
####################end########################################