java mybatis 案例_Mybatis入门详解及案例

Mybatis案例超详解

前言:

本来是想像之前一样继续跟新Mybatis,但由于种种原因,迟迟没有更新,快开学了,学了一个暑假,博客也更新了不少,我觉得我得缓缓,先整合一些案例练练,等我再成熟点理解再透彻点之后再详细更新,如果仅仅是为了更新博客而忽视质量的话,有违我的初心,所以我决定,暂时转移路线,整合一些案例,为了以后更新更好的博客而准备。

此篇我会由浅入深进行整理,适合新手练习,希望能对一些有需求的朋友有所帮助。

案例准备

开发工具:IDEA

前端页面:

在Bootstrap官网https://getbootstrap.com/下载 Bootstrap CSS、JavaScript 和字体的预编译的压缩版本

从 jquery.com下载 jQuery 库

案例解析

创建Maven项目

11363878.html

87f5ad611cd922eb01ded835c401905d.png

创建数据库

a2dc7165ed0e8f0a5cb5432f198ba077.png

11363878.html

CREATE DATABASE moocmybatis;

USE moocmybatis;

CREATE TABLE users(

id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号',

username VARCHAR(50) NOT NULL COMMENT '登录账号',

userpass VARCHAR(50) NOT NULL COMMENT '登录密码',

nickname VARCHAR(50) COMMENT '昵称',

age INT COMMENT '用户年龄',

gender VARCHAR(5) COMMENT '用户性别',

phone VARCHAR(13) COMMENT '联系方式',

email VARCHAR(20) COMMENT '用户邮箱',

createTime DATETIME COMMENT '账号创建时间',

updateTime DATETIME COMMENT '账号最后修改时间',

lastLogin DATETIME COMMENT '账号最后一次登录时间',

userStatus INT COMMENT '用户账号的状态 0 正常 1 锁定 2 删除',

remark TEXT COMMENT '备注'

);

d030de9bbc216688c262e1b4f942d29d.png

11363878.html

pom.xml

org.mybatis

mybatis

3.4.6

mysql

mysql-connector-java

5.1.38

javax.servlet

javax.servlet-api

3.1.0

javax.servlet

jstl

1.2

junit

junit

4.12

test

mybatis-config.xml

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

usersMapper.xml

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from users;

db.properties

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/moocmybatis?useUnicode=true&characterEncoding=utf8

username=root

password=root

0ac25a1152dcc6b78d88fe785b2f112e.png

11363878.html

Users

package com.demo.entity;

import java.util.Date;

public class Users {

private Integer id; // 用户编号

private String username; // 登录账号

private String userpass; // 登录密码

private String nickname; // 用户昵称

@Override

public String toString() {

return "Users{" +

"id=" + id +

", username='" + username + '\'' +

", userpass='" + userpass + '\'' +

", nickname='" + nickname + '\'' +

'}';

}

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 String getUserpass() {

return userpass;

}

public void setUserpass(String userpass) {

this.userpass = userpass;

}

public String getNickname() {

return nickname;

}

public void setNickname(String nickname) {

this.nickname = nickname;

}

}

cf675b384a09b6f3b313378e3448aa64.png

11363878.html

TestDemo

import com.demo.entity.Users;

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 java.io.IOException;

import java.io.InputStream;

import java.util.List;

public class TestDemo {

@Test

public void test1() throws IOException {

String resource = "mybatis-config.xml";

InputStream is = Resources.getResourceAsStream(resource);

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

SqlSession session= sqlSessionFactory.openSession();

List list = session.selectList("usersList");

for (Users user:list){

System.out.println(user);

}

session.close();

}

}

运行结果

b0511c725d60e53544ea8ab59ed6bde6.png

11363878.html

测试成功,证明数据库连接没有任何问题。

Web

Tomcat的配置看我博客园的博客或自己百度搜索

在文章开头的网址中下载并添加整理到如图的文件夹下

11363878.html

09248bb1c73f1bd7402e4d526ad85868.png

88e503562212f0215cba2d9e75276fb7.png

11363878.html

web.xml

xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

id="WebApp_ID" version="3.1">

mybatispro

index.jsp

index.jsp

用户管理中心

MyBatis基础入门!

通过一个项目来完成基础部分的学习

请关注泰斗贤若如博客园

新增用户

用户编号登录账号用户昵称邮箱联系方式账号创建时间用户状态操作
111张三丰拉拉222@qq.com2444656562019正常

查看

修改

删除

111张三丰拉拉222@qq.com2444656562019正常

查看

修改

删除

111张三丰拉拉222@qq.com2444656562019正常

查看

修改

删除

启动服务器并展示页面

Bootstrap的学习可以到

11363878.html

2dc5ee3ea6afa1dc242139f383ef6e81.png

继续深入

ddb3c2844de55f31c6696b8d491aa043.png

11363878.html

SqlSessionFactoryUtils

package com.demo.utils;

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 java.io.IOException;

import java.io.InputStream;

public class SqlSessionFactoryUtils {

private static String RESOURCE = "mybatis-config.xml";

private static SqlSessionFactory sqlSessionFactory;

private static ThreadLocal threadLocal = new ThreadLocal();

/**

* 创建一个初始化SqlSessionFactory的方法

*/

public static void initSqlSessionFactory(){

try {

InputStream is = Resources.getResourceAsStream(RESOURCE);

sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 获取工厂的方法

* @return

*/

public static SqlSessionFactory getSqlSessionFactory(){

return sqlSessionFactory;

}

public static void close(){

SqlSession session = threadLocal.get();

if (session!=null){

session.close();

threadLocal.set(null);

}

}

}

11363878.html

1d538a5bbad0d65d8c42eacedd3e6ecc.png

UserDao

package com.demo.dao;

import com.demo.entity.Users;

import com.demo.utils.SqlSessionFactoryUtils;

import org.apache.ibatis.session.SqlSession;

import java.util.List;

public class UsersDao {

private SqlSession session = SqlSessionFactoryUtils.getSqlSessionFactory().openSession();

private List list;

public List findAll(){

try {

list = session.selectList("findAll");

}catch (Exception e){

e.printStackTrace();

}finally {

session.close();

}

return list;

}

}

2972a0aaf00f7d9ebc270f1e3283aeef.png

InitSqlSessionListener

package com.demo.listener;

import com.demo.utils.SqlSessionFactoryUtils;

import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.annotation.WebListener;

@WebListener

public class InitSqlSessionListener implements ServletContextListener {

@Override

public void contextInitialized(ServletContextEvent servletContextEvent) {

System.out.println("容器加载中。。。。。");

//初始化SqlSessionFactory对象

SqlSessionFactoryUtils.initSqlSessionFactory();

}

@Override

public void contextDestroyed(ServletContextEvent servletContextEvent) {

System.out.println("容器销毁中。。。。。");

//关闭SqlSession对象

SqlSessionFactoryUtils.close();

}

}

测试(启动服务器,关闭服务器)

8ad85d49b1fd8ea188570a4bad42d281.png

cb11b1c30131f7e5a6d38af900345f37.png

11363878.html

11363878.html

测试成功。

11363878.html

dfc5037fce9440789797678845532bb9.png

UsersFindServlet

package com.demo.servlet;

import com.demo.dao.UsersDao;

import com.demo.entity.Users;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.List;

@WebServlet("/index")

public class UsersFindServlet extends HttpServlet {

private UsersDao usersDao = new UsersDao();

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

doPost(req, resp);

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

List list = usersDao.findAll();

req.setAttribute("usersList",list);

req.getRequestDispatcher("index.jsp").forward(req,resp);

}

}

e1927c4b0855e4437a2bd6bae072b47d.png

11363878.html

home.jsp

Created by IntelliJ IDEA.

User: Lenovo

Date: 2019/8/16

Time: 9:21

To change this template use File | Settings | File Templates.

--%>

跳转

response.sendRedirect("/index");

%>

web.xml

xmlns="http://xmlns.jcp.org/xml/ns/javaee"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"

id="WebApp_ID" version="3.1">

mybatispro

home.jsp

99a807f829605f5c61b9f29417d2d854.png

11363878.html

index.jsp

用户管理中心

MyBatis基础入门!

通过一个项目来完成基础部分的学习

请关注泰斗贤若如博客园

新增用户

用户编号登录账号用户密码用户昵称
${user.id}${user.username}${user.userpass}${user.nickname}

查看

修改

删除

开启服务器测试

7c86005c1cd656b372ec74f0cc796c79.png

720d5429c31d418d087d75eb03d15cbc.png

11363878.html

11363878.html

测试成功

好,到这的话Mybatis基础操作入门应该差不多了,此篇到此结束,下一篇会继续更新增删改查功能。

*****************************************************************************************************

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值