20210402

本文详细介绍了如何搭建MyBatis工程,包括配置数据库连接、编写Java代码进行数据查询。接着展示了在MyBatis中实现Mapper配置,通过注解和XML方式查询数据。最后提到了SpringMVC工程的搭建过程,包括配置SpringMVC、编写Controller层代码以及JSP页面展示。整个过程涵盖了数据库操作、MyBatis映射和SpringMVC请求映射注解的应用。
摘要由CSDN通过智能技术生成

MyBatis工程搭建:
因为MyBatis是一个持久层框架,所以我们在配置使用之前要连接数据库,在导入MySQL驱动包,等待maven刷新下载,之后写入代码:
public class JDBCDemo {
public static void main(String[] args) throws Exception {

    Class.forName("com.mysql.cj.jdbc.Driver");
  
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis_demo", "root", "root");

    PreparedStatement preparedStatement = connection.prepareStatement("select * from user WHERE id = ?");
    preparedStatement.setInt(1, 1);
  
    ResultSet resultSet = preparedStatement.executeQuery();
   
    while (resultSet.next()) {
        System.out.println("username: " + resultSet.getString("username"));
        System.out.println("age: " + resultSet.getString("age"));
    }
    resultSet.close();
    preparedStatement.close();
    connection.close();
}

}
代码实现:在这里插入图片描述
引入mybatis依赖:
引入依赖架包
mybatis:MyBatis基础包
logback-classic:日志依赖

org.mybatis mybatis 3.5.6 ch.qos.logback logback-classic 1.3.0-alpha5 test 刷新maven,等待依赖架包下载。libraries中多了架包就表示已经引入完成。 新建类StartNoXml.java在里面写代码:
@SuppressWarnings({“SqlResolve”, “SqlNoDataSourceInspection”, “Duplicates”})
public class StartNoXml {
public static void main(String[] args) throws SQLException {
// 准备jdbc事务类
JdbcTransactionFactory jdbcTransactionFactory = new JdbcTransactionFactory();
// 配置数据源
PooledDataSource dataSource = new PooledDataSource(
“com.mysql.cj.jdbc.Driver”,
“jdbc:mysql://localhost:3306/mybatis_demo?useSSL=false”,
“root”,
“root”);
// 配置环境,向环境中指定环境id、事务和数据源
Environment environment = new Environment.Builder(“development”)
.transactionFactory(jdbcTransactionFactory)
.dataSource(dataSource).build();
// 新建 MyBatis 配置类
Configuration configuration = new Configuration(environment);
// 得到 SqlSessionFactory 核心类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
// 开始一个 sql 会话
SqlSession session = sqlSessionFactory.openSession();
// 得到 sql 连接并运行 sql 语句
PreparedStatement preStatement = session
.getConnection()
.prepareStatement(“SELECT * FROM user WHERE id = ?”);
preStatement.setInt(1, 1);
ResultSet result = preStatement.executeQuery();
// 验证结果
while (result.next()) {
System.out.println("username: " + result.getString(“username”));
System.out.println("age: " + result.getString(“age”));
}
// 关闭会话
session.close();
}
}
在这里插入图片描述
MyBatis实现Mapper配置并查询数据
新建项目名为:“mybatis-mapper-chenqionbin,配置好idea的库。
建好数据库,先前的上节课就已经建好数据库了,等下调用就可以了。
resources下新建配置文件mybatis-config.xml导入mapper配置

新建mapper包,在其下面新建类UserMapper.java,在其里面定义方法:
package mapper;

public interface UserMapper {
/**

  • 通过用户id查询用户名称
  • @param id 用户id
  • @return 用户名称
    /
    String selectUsernameById(Integer id);
    }
    新建模板测试类UserTest.java
    @SuppressWarnings({“Duplicates”})
    public class UserTest {
    public static void main(String[] args) throws IOException, SQLException {
    // 读取配置文件
    InputStream configuration = Resources.getResourceAsStream(“mybatis-config.xml”);
    // 得到 SqlSessionFactory 核心类
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
    // 开始一个 sql 会话
    SqlSession session = sqlSessionFactory.openSession();
    // 得到 mapper
    UserMapper mapper = session.getMapper(UserMapper.class);
    // 调用注解的SQL
    String username = mapper.selectUsernameById(1);
    System.out.println("username: " + username);
    // 关闭会话
    session.close();
    }
    }

User模块Mapper层:UserMapper.java里面新增方法
/*

通过用户id查询用户年龄
@param id 用户id
@return 用户年龄
*/
Integer selectUserAgeById(Integer id);
新建

<?xml version="1.0" encoding="UTF-8" ?> 数据库的使用的多变性,调用方法。

MyBatis操作数据库:
增删改查:
增:insert [into] <表名> (列名) values (列值)
删:delete from <表名> [where <删除条件>]
改:update <表名> set <列名=更新值> [where <更新条件>]
查:select * from student

for forEach 循环及Lambda表达式使用:
for循环语句代码:较为简单的一种循环
for(初始化; 判别式; 更新) {
代码语句
}
forEach循环代码:java5的新特征之一
for(元素类型 元素变量 : 遍历对象){
代码语句
}
Lambda表达式是java8的新特征之一
forEach循环整合Lambda表达式后代码:
遍历对象.forEach(元素变量 -> 代码语句);
新建mybatis-config.xml
编写代码

<?xml version="1.0" encoding="UTF-8" ?> 启动类:StartWithXml.java InputStream configuration = Resources.getResourceAsStream("mybatis-config.xml"); **执行结果 username:peter age:18**

第二节
MyBatis实现Mapper配置并查询数据
首先也需要给数据库准备数据

删除mybatis_demo数据库
drop database if exists mybatis_demo;

创建mybatis_demo数据库
create database mybatis_demo;

使用mybatis_demo数据库
use mybatis_demo;

创建account表
create table user (
id int auto_increment primary key,
username varchar(20),
age int,
score int
);

新增数据
insert into user (id, username, age, score) values
(1,‘peter’, 18, 100), (2,‘pedro’, 24, 200),
(3,‘jerry’, 28, 500), (4,‘mike’, 12, 300),
(5,‘tom’, 27, 1000);

注解方式使用Mapper
新建
mybatis-config.xml
UserMapper.java
UserTest.java
@SuppressWarnings({“Duplicates”})
public class UserTest {
public static void main(String[] args) throws IOException, SQLException {
// 读取配置文件
InputStream configuration = Resources.getResourceAsStream(“mybatis-config.xml”);
// 得到 SqlSessionFactory 核心类
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
// 开始一个 sql 会话
SqlSession session = sqlSessionFactory.openSession();
// 得到 mapper
UserMapper mapper = session.getMapper(UserMapper.class);
// 调用注解的SQL
String username = mapper.selectUsernameById(1);
System.out.println("username: " + username);
// 关闭会话
session.close();
}
}
执行结果
username:peter
age:18

XML方式使用Mapper
新建
mybatis-config.xml
UserMapper.java
UserMapper.xml
UserTest.java

for forEach 循环及Lambda表达式使用
for循环语句是代码中常用的循环代码,相对于其他的循环语句更为简单,一般代码结构如下:
for(初始化; 判别式; 更新) {
代码语句
}

forEach循环是java5的新特征之一,在遍历数组、集合方面,forEach为开发人员提供了极大的方便
其代码结构如下:

for(元素类型 元素变量 : 遍历对象){
代码语句
}
forEach循环 + Lambda表达式
Lambda表达式是java8的新特征之一,它使我们可以更方便地操作集合
forEach循环整合Lambda表达式后代码结构如下:
遍历对象.forEach(元素变量 -> 代码语句);
五,SpringMVC工程搭建
创建项目
添加web
右键我们的项目名 -> 选择“Add Framework Support”
1,选择WebApplication
2,核实版本号
3,核实是否会自动创建web.xml
搭建配置SpringMVC
引入依赖

junit
junit
4.13.2
test

org.springframework
spring-webmvc
5.2.13.RELEASE

javax.servlet
servlet-api
2.5

javax.servlet
javax.servlet-api
4.0.1
provided

刷新maven
配置静态资源导出

src/main/java

/*.properties
/.xml

false

src/main/resources

**/.properties
**/*.xml

false

Spring核心配置文件
新建applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

1
添加SpringMVC配置内容
mvc:default-servlet-handler/

编写代码测试
编写Controller层
package controller;

@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello(Model model){
// Model 封装数据
model.addAttribute(“msg”,“HELLO MY FIRST SPRING MVC PROJECT”);

// 返回的字符串就是视图的名字 会被视图解析器处理
return "hello";

}
1
2
3
4
5
6
7
8
}
applicationContext.xml

<context:component-scan base-package=“controller”/>

编写jsp
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

${msg} 编写web.xml springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:applicationContext.xml 1 springmvc / encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 encodingFilter /*
六,SpringMVC请求映射注解
Spring MVC 提供了以下这些请求映射注解:

请求映射注解 说明 类/方法

@RequestMapping 通用的请求处理 类

@GetMapping 处理 HTTP GET 请求 查询方法

@PostMapping 处理 HTTP POST 请求 新增修改方法

@PutMapping 处理 HTTP PUT 请求 新增修改方法

@PatchMapping 处理 HTTP PATCH 请求 新增修改方法

@DeleteMapping 处理 HTTP DELETE 请求 删除方法

除了 @RequestMapping ,其它类型的注解本质上是 @RequestMapping 的简写形式

比如 @GetMapping 其实可以写为@RequestMapping( method = RequestMethod.GET)

建议在类级别上只使用 @RequestMapping ,用于指定基本路径

而在每个方法上根据方法功能不同使用更具体的请求映射注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值