舒大少博客

一个95后少年的个人博客

当前时间为:
欢迎大家来到舒大少博客https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

2020java框架教程之mybatis嵌套查询以及延迟加载

2020-12-31 11:39:05
swq1822677238

2020java框架教程之mybatis嵌套查询以及延迟加载

一对一查询

用户与简历

1.数据库表:

简历数据库表: (更多…)

2020java框架教程之mybatis分页

2020-12-30 14:02:53
swq1822677238

2020java框架教程之mybatis分页

1.导入依赖

<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>5.2.0</version>
</dependency>


(更多…)

2020java框架教程之mybatis工具类

2020-12-27 16:12:44
swq1822677238

2020java框架教程之mybatis工具类

==
mybatis工具类
1.创建web项目
2.导入依赖
3.导入数据库以及log4j配置文件
4.创建mybatis-config.xml文件
5.创建util包以及创建MybatisUtils工具类

log4j: (更多…)

2020java框架教程之mybatis关联关系

2020-12-27 15:39:14
swq1822677238

2020java框架教程之mybatis关联关系

1.一对一

数据库表

create table member(#用户
    uid int auto_increment primary key ,
    username varchar(50) not null ,
    sex varchar(2) not null
)charset=utf8;
create table resume(#简历
    id int auto_increment primary key ,
    resume_name varchar(50) not null ,
    resume_uid int unique ,
    foreign key (resume_uid) references member(uid)
)charset=utf8;

(更多…)

2020java框架教程之spring代理模式

2020-12-24 17:00:31
swq1822677238

2020java框架教程之spring代理模式

概念:

将核心功能与辅助功能(事务、日志、性能监控代码)分离,达到核心业务功能更纯粹、辅助业务功能可复用。

静态代理设计模式 (更多…)

2020java框架教程之mybatis缓存

2020-12-21 10:42:05
swq1822677238

2020java框架教程之mybatis缓存

一级缓存:

是session级别的缓存,一级缓存默认存在。
当在同一个session范围执行查询的时候,如果执行相同的查询,那么第二次查询会从缓存中获取数据

测试1:

@Test
public void testSelectUsersCacheLevelOne1(){
    SqlSession ss = MybatisUtils.getSqlSession();
    UsersMapper um = ss.getMapper(UsersMapper.class);
    Users users1 = um.selectByPrimaryKey(1);
    System.out.println("结果已查询");
    Users users2 = um.selectByPrimaryKey(1);
    System.out.println("结果已查询:从缓存中获取数据");
    ss.close();
    System.out.println("session关闭");
}

(更多…)

2020java框架教程之Mybatis逆向工程CRUD

2020-12-20 20:12:13
swq1822677238

2020java框架教程之Mybatis逆向工程CRUD

1.创建web项目
2.导入相关依赖
3.创建工具类
4.导入逆向工程并启动
5.刷新项目
6.在实体类文件增加构造方法和toString方法
7.创建测试
8.调用方法


(更多…)

2020java框架教程之mybatis逆向工程

2020-12-20 16:13:17
swq1822677238

2020java框架教程之mybatis逆向工程

下载地址:https://sithub.com/mybatis/generator/releases/tag/mybatis-generator-1.3.2

1.创建web项目

2.导入依赖

<dependency>
  <groupId>org.mybatis.generator</groupId>
  <artifactId>mybatis-generator-core</artifactId>
  <version>1.3.2</version>
</dependency>

3.创建包并且创建类继承DefaultCommentGenerator
(更多…)

2020java框架教程之mybatis动态sql

2020-12-19 16:08:31
swq1822677238

2020java框架教程之mybatis动态sql

1.if

需求:

1.查询已激活的,并且博客的名字是包含某个查询字符串的记录
2.如果用户没有输入任何查询字符串,那么就显示所有已激活的博客

mapper:

<select id="selectActiveBlogByTitle" parameterType="string" resultMap="blogResultMap">
    select*from blog where state = 'active'
    <if test="value !=null and value !='' ">
        and title like concat('%','${value}','%')
    </if>
</select>

(更多…)

2020java框架教程之mybatis的增删改查CRUD

2020-12-19 11:35:41
swq1822677238

2020java框架教程之mybatis的增删改查CRUD

查询:

mapper:

<!-- 通过 id 查询用户 -->
<select id="selectUser" resultType="Users" parameterType="int">
    select * from users where id = #{id}
</select>
<!--  设置 ResultMap -->
<resultMap id="usersResultMap" type="Users">
    <id column="id" property="id" jdbcType="INTEGER"/>
    <!-- 将 password 设置 pwd 为别名 -->
    <result column="pwd" property="password" jdbcType="VARCHAR"/>
</resultMap>
<!--  通过 resultMap 查询用户 -->
<select id="selectUser2" resultMap="usersResultMap" parameterType="int">
    select * from users where id = #{id}
</select>
 (更多…)

2020java框架教程之mybatis删除

2020-12-19 11:32:12
swq1822677238

2020java框架教程之mybatis删除

<!-- 删除 -->
<delete id="deleteUsers" parameterType="int">
    delete from users where id=#{id}
</delete>
@Test
public void test12(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UsersDao mapper = sqlSession.getMapper(UsersDao.class);
    int i = mapper.deleteUsers(12);
    if(i>0) System.out.println("删除成功");
    else System.out.println("删除失败");
    sqlSession.commit();
    sqlSession.close();
}

2020java框架教程之mybatis修改

2020-12-19 11:10:33
swq1822677238

2020java框架教程之mybatis修改

<!--修改 -->
<update id="updateUsers" parameterType="Users">
    update users set password=#{password} where id=#{id}
</update>
@Test
public void test11(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    UsersDao mapper = sqlSession.getMapper(UsersDao.class);
    Users users=new Users();
    users.setId(1);
    users.setPassword("admin666");
    int i = mapper.updateUsers(users);
    if(i>0) System.out.println("修改成功");
    else System.out.println("修改失败");
    sqlSession.commit();
    sqlSession.close();
    System.out.println(users);
}

2020java框架教程之mybatis获取刚刚插入的id(自增)

2020-12-19 10:47:47
swq1822677238

2020java框架教程之mybatis获取刚刚插入的id(自增)

一:插入记录

需求:新增一个用户

DDL操作

二:获取自增id

<insert id="insertUsers" parameterType="Users" useGeneratedKeys="true" keyProperty="id">
    insert into users(username,password,rolename,identity,mobile)
    values(#{username},#{password},#{rolename},#{identity},#{mobile})
</insert>

(更多…)

2020java框架教程之mybatis参数传递

2020-12-19 09:53:59
swq1822677238

2020java框架教程之mybatis参数传递

一、分页

方式1:使用索引

按照参数的顺序,从0开始

select*from users limit #{0},#{1}

方式2:使用注解

select*from users limit #{start},#{pageSize}

List<Users> selectUsersPage2(
@Param(value = “start”) int start,
@Param(value = “pageSize”) int pageSize);

方式3:使用Map

(更多…)

2020java框架教程之mybatis模糊查询和排序

2020-12-19 09:18:08
swq1822677238

2020java框架教程之mybatis模糊查询和排序

1.模糊查询

需求:根据对方的用户名查询信息(模糊查询)

方式1:使用 #传参

<select id="selectUsersName" parameterType="string" resultMap="usersResultMap">
    select *from users where username like #{username}
</select>

方式2:使用 $ 传参

<select id="selectUsersName2" parameterType="string" resultMap="usersResultMap">
    select *from users where username like '%${value}%'
</select>

注意:当使用$传参时,如果参数是单值属性,并且只有一个参数,那么参数必须使用 value 占位

(更多…)

2020java框架教程之mybatis实体类属性

2020-12-18 14:51:01
swq1822677238

2020java框架教程之mybatis实体类属性

列名和属性名不一致的情况

1.使用别名

<select id="selectUser2" resultType="Users" parameterType="int">
    select username as uname,password from users where id = #{id}
</select>

2.使用ResultMap

<?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="mybatis.dao.UsersDao">
    <!-- 设置 ResultMap -->
    <resultMap id="usersResultMap" type="Users">
        <id column="id" property="id" jdbcType="INTEGER"/>
        <!-- 将 password 设置 pwd 为别名 -->
        <result column="pwd" property="password" jdbcType="VARCHAR"/>
    </resultMap>
    <!-- 通过 resultMap 查询用户 --> (更多…)

2020java框架教程之Mybatis入门

2020-12-18 11:38:02
swq1822677238

2020java框架教程之Mybatis入门

大纲:

1.Mybatis 持久层:简化工作量,灵活

2.spring 粘合剂:整合框架、AOP、IOC、DI

3.SpringMVC 表现层:方便前后端数据的传输。

 

1.什么是Mybatis

a.Mybatis是对jdbc的封装
b.将SQL语句放在映射文件中(xml)
c.自动将输入参数映射到sql语句的动态参数上
d.自动将sql语句执行的结果映射成java对象

2.Mybatis入门

a.创建web项目
b.导入相关依赖:
(更多…)

2020java框架教程之springMVC的图片上传

2020-12-17 11:01:20
swq1822677238

2020java框架教程之springMVC的图片上传

1.引入相关依赖

<!-- 文件处理 -->
<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.1</version>
</dependency>

2.在springmvc的配置中添加如下配置 (更多…)

2020java框架教程之spring的拦截器以及排除静态资源

2020-12-17 08:29:43
swq1822677238

2020java框架教程之spring的拦截器以及排除静态资源

1.创建拦截器类

2.实现HandlerInterceptor接口

3.覆盖接口方法


(更多…)

2020java框架教程之springMVC异常处理

2020-12-16 15:30:45
swq1822677238

2020java框架教程之springMVC异常处理

实例1:简单异常处理

1.在控制层创建一个异常处理的方法,并且添加 @ExceptionHandler 注解

@ExceptionHandler
public ModelAndView handleException(Exception ex){
    System.out.println("出现异常:"+ex);
    ModelAndView mav=new ModelAndView();
    mav.setViewName("error");
    mav.addObject("exception",ex);
    return mav;
}

2.创建错误页面

(更多…)