功能分类模块类型网站,说明设计网站开发方案流程,自己建设网站需要哪些,wordpress中文源码下载目录 MyBatis第一章#xff1a;框架的概述1. MyBatis框架的概述 第二章#xff1a;MyBatis的入门程序1. 创建数据库和表结构2. MyBatis的入门步骤 MyBatis
第一章#xff1a;框架的概述
1. MyBatis框架的概述
MyBatis是一个优秀的基于Java的持久层框架#xff0c;内部对… 目录 MyBatis第一章框架的概述1. MyBatis框架的概述 第二章MyBatis的入门程序1. 创建数据库和表结构2. MyBatis的入门步骤 MyBatis
第一章框架的概述
1. MyBatis框架的概述
MyBatis是一个优秀的基于Java的持久层框架内部对JDBC做了封装使开发者只需要关注SQL语句而不用关注JDBC的代码使开发变得更加的简单。MyBatis通过XML或者注解的方式将要执行的各种Statement对象配置起来通过Java对象和statement中SQL的动态参数进行映射并最终执行SQL语句。执行SQL后最终将结果已Java对象返回。采用了ORM的思想。
第二章MyBatis的入门程序
1. 创建数据库和表结构
create database mybatis_db;
use mybatis_db;CREATE TABLE user (id int(11) NOT NULL auto_increment,username varchar(32) NOT NULL COMMENT 用户名称,birthday datetime default NULL COMMENT 生日,sex char(1) default NULL COMMENT 性别,address varchar(256) default NULL COMMENT 地址,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8;insert into user(id,username,birthday,sex,address) values (1,老王,2018-02-27 17:47:08,男,北京),(2,熊大,2018-03-02 15:09:37,女,上海),(3,熊二,2018-03-04 11:34:34,女,深圳),(4,光头强,2018-03-04 12:04:06,男,广州);2. MyBatis的入门步骤 创建maven的项目创建Java工程即可。 引入坐标 引入MyBatis的3.4.5的版本的坐标 引入MySQL驱动的jar包5.1.6版本 引入Junit单元测试的jar包 引入log4j的jar包1.2.12版本需要引入log4j.properties的配置文件 dependencies!--mybatis核心包--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.5/version/dependency!--mysql驱动包--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.6/version/dependency!-- 单元测试 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.10/versionscopetest/scope/dependency!-- 日志 --dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency/dependencies编写User的实现类属性尽量使用包装类型具体的代码如下 package cn.tx.domain;import java.io.Serializable;
import java.util.Date;/***** */
public class User implements Serializable{private static final long serialVersionUID 525400707336671154L;private Integer id;private String username;private Date birthday;private String sex;private String address;public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday birthday;}public String getSex() {return sex;}public void setSex(String sex) {this.sex sex;}public String getAddress() {return address;}public void setAddress(String address) {this.address address;}Overridepublic String toString() {return User{ id id , username username \ , birthday birthday , sex sex \ , address address \ };}
}编写UserMapper的接口和方法就是咱们以前的UserDao接口 package cn.tx.mapper;import java.util.List;
import cn.tx.domain.User;public interface UserMapper {/*** 查询所有的用户* return*/public ListUser findAll();}在resources目录下创建mapper文件夹。编写UserMapper.xml的配置文件导入约束文件。 ?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.qcbyjy.mapper.UserMapperselect idfindAll resultTypecom.qcbyjy.domain.Userselect * from user;/select
/mappermapper namespace“com.qcbyjy.mapper.UserMapper”叫名称空间表明以后查找UserMapper接口中的findAll的方法。select idfindAll中的id属性编写的UserMapper接口中的方法的名称固定的。resultTypecom.qcbyjy.domain.User表明的是findAll方法的返回值类型。 编写主配置文件在resources目录下创建SqlMapConfig.xml的配置文件其实名称可以任意导入对应的约束编写主配置文件。 ?xml version1.0 encodingUTF-8?
!DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//EN http://mybatis.org/dtd/mybatis-3-config.dtd
configuration!-- 配置环境们 --environments defaultmysql!-- 配置具体的环境 --environment idmysql!-- 配置事务管理类型 --transactionManager typeJDBC/!-- 配置是否需要使用连接池POOLED使用UNPOOLED不使用 --dataSource typePOOLEDproperty namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql:///mybatis_db/property nameusername valueroot/property namepassword valueroot//dataSource/environment/environments!-- 加载映射的配置文件 --mappersmapper resourcemappers/UserMapper.xml//mappers
/configuration1.配置环境environments default“mysql”指定默认使用的数据库环境。 子标签 定义了名为 mysql 的环境。 transactionManager type“JDBC”声明使用 JDBC 事务管理方式。 配置数据源类型为连接池POOLED。 包括数据库驱动类、连接 URL、用户名和密码。 2.加载映射文件mappers 加载位于 resources/mappers/ 目录下的 UserMapper.xml 文件定义 SQL 语句和接口映射关系 编写入门程序 1.加载配置文件 使用 MyBatis 提供的 Resources 工具类加载 SqlMapConfig.xml。 2.构建 SqlSessionFactory 通过 SqlSessionFactoryBuilder 构建 SqlSessionFactory 工厂用于创建 SqlSession。 3.获取 SqlSession 调用 openSession() 方法创建 SqlSession用于执行 SQL 语句。 4.调用 Mapper 接口 使用 getMapper(UserMapper.class) 获取 UserMapper 接口的动态代理对象。 调用 findAll() 方法执行 SQL 查询。 5.输出结果 遍历查询结果打印用户信息。 6.释放资源 关闭 SqlSession 和 InputStream避免资源泄漏。 package cn.tx.test;import java.io.InputStream;
import java.util.List;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import cn.tx.domain.User;
import cn.tx.mapper.UserMapper;public class UserTest {/*** 测试查询所有的方法* throws Exception */Testpublic void testFindAll() throws Exception {// 加载主配置文件目的是构建SqlSessionFactory的对象InputStream in Resources.getResourceAsStream(SqlMapConfig.xml);// 创建SqlSessionFactory对象SqlSessionFactory factory new SqlSessionFactoryBuilder().build(in);// 使用SqlSessionFactory工厂对象创建SqlSession对象SqlSession session factory.openSession();// 通过session创建UserMapper接口的代理对象UserMapper mapper session.getMapper(UserMapper.class);// 调用查询所有的方法ListUser list mapper.findAll();// 遍历集合for (User user : list) {System.out.println(user);}// 释放资源session.close();in.close();}Testpublic void run2() throws Exception {// 加载配置文件InputStream inputStream Resources.getResourceAsStream(SqlMapConfig.xml);// 构建SqlSessionFactory对象SqlSessionFactory factory new SqlSessionFactoryBuilder().build(inputStream);// 获取到session对象SqlSession session factory.openSession();// 查询所有的数据ListUser list session.selectList(com.qcbyjy.mapper.UserMapper.findAll);// 变量集合for (User user : list) {System.out.println(user);}// 关闭资源session.close();inputStream.close();}
}