首页 > 编程语言 >学习javaweb第2天(MyBatis快速入门)

学习javaweb第2天(MyBatis快速入门)

时间:2022-08-19 22:44:08浏览次数:65  
标签:String 入门 mybatis import MyBatis org logback public javaweb

Mybatis

几乎免除所有的JDBC代码以及设置参数和获取结果集的工作

演示mybatis快速入门

1、创建user表,添加数据:

在sqlyog中输入一下代码,生成mybatis数据库,并且生成tb_user表

CREATE DATABASE mybatis;
USE mybatis;

DROP TABLE IF EXISTS tb_user;

CREATE TABLE tb_user(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20),
`password` VARCHAR(20),
gender CHAR(1),
addr VARCHAR(30)
)ENGINE =INNODB DEFAULT CHARSET=utf8  


INSERT INTO tb_user VALUES (1, 'zhangsan', '123', '男', '北京');
INSERT INTO tb_user VALUES (2, '李四', '234', '女', '天津');
INSERT INTO tb_user VALUES (3, '王五', '11', '男', '西安');

 

2、创建模块,导入坐标

新建一个maven模块,在pom.xml导入坐标(即添加一些必要的jar包)

导入的坐标如下:

<dependencies>
       <!--mybatis的依赖-->
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.5.5</version>
       </dependency>

       <!--mysql的驱动-->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.46</version>
       </dependency>

       <!--junit 单元测试-->
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.13</version>
           <scope>test</scope>
       </dependency>

       <!-- 添加slf4j日志api -->
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-api</artifactId>
           <version>1.7.20</version>
       </dependency>
       <!-- 添加logback-classic依赖 -->
       <dependency>
           <groupId>ch.qos.logback</groupId>
           <artifactId>logback-classic</artifactId>
           <version>1.2.3</version>
       </dependency>
       <!-- 添加logback-core依赖 -->
       <dependency>
           <groupId>ch.qos.logback</groupId>
           <artifactId>logback-core</artifactId>
           <version>1.2.3</version>
       </dependency>

   </dependencies>

除了<!-- 添加slf4j日志api -->这一部分为直接引用,其他代码就是简单的maven语句以及一些之前用过的jar包。

这个xml文件的完整内容为(除了导入的坐标以外都是文件自带的):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>org.example</groupId>
   <artifactId>mybatis</artifactId>
   <version>1.0-SNAPSHOT</version>

   <properties>
       <maven.compiler.source>17</maven.compiler.source>
       <maven.compiler.target>17</maven.compiler.target>
   </properties>

   <dependencies>
       <!--mybatis的依赖-->
       <dependency>
           <groupId>org.mybatis</groupId>
           <artifactId>mybatis</artifactId>
           <version>3.5.5</version>
       </dependency>

       <!--mysql的驱动-->
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.46</version>
       </dependency>

       <!--junit 单元测试-->
       <dependency>
           <groupId>junit</groupId>
           <artifactId>junit</artifactId>
           <version>4.13</version>
           <scope>test</scope>
       </dependency>

       <!-- 添加slf4j日志api -->
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-api</artifactId>
           <version>1.7.20</version>
       </dependency>
       <!-- 添加logback-classic依赖 -->
       <dependency>
           <groupId>ch.qos.logback</groupId>
           <artifactId>logback-classic</artifactId>
           <version>1.2.3</version>
       </dependency>
       <!-- 添加logback-core依赖 -->
       <dependency>
           <groupId>ch.qos.logback</groupId>
           <artifactId>logback-core</artifactId>
           <version>1.2.3</version>
       </dependency>

   </dependencies>


</project>

 

3、编写MyBatis核心配置文件 -->替换连接信息,解决硬编码的问题

在resources下创建mybatis-config.xml文件;

从mybatis官网中copy下列代码,并且进行一些修改;含有$符号的位置都是需要自己改的地方(其实就是数据库连接信息的地方要根据自己的mysql进行连接,和sql映射文件的路径):

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
   <environments default="development">
       <environment id="development">
           <transactionManager type="JDBC"/>
           <dataSource type="POOLED">

               <!--数据库连接信息-->
               <property name="driver" value="com.mysql.jdbc.Driver"/>
               <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSl=false"/>
               <property name="username" value="root"/>
               <property name="password" value="123456"/>
           </dataSource>
       </environment>
   </environments>
   <mappers>
<!--       加载sql映射文件-->
       <mapper resource="UserMapper.xml"/>
   </mappers>
</configuration>

 

4、编写SQL映射文件 --> 同意管理sql语句,解决硬编码问题

在resources目录下创建UserMapper.xml文件(也是根据官网的入门文件改写的,不知道原理)

<?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">
<!--
   namespace:名称空间
-->
<mapper namespace="test">
   <select id="selectAll" resultType="com.liuxin.pojo.User">
      select * from tb_user;
   </select>
</mapper>

 

5、在resources目录下添加配置文件logback.xml(这个是从资料中直接copy过来的,具体还不理解)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <!--
       CONSOLE :表示当前的日志信息是可以输出到控制台的。
   -->
   <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
       <encoder>
           <pattern>[%level] %blue(%d{HH:mm:ss.SSS}) %cyan([%thread]) %boldGreen(%logger{15}) - %msg %n</pattern>
       </encoder>
   </appender>

   <logger name="com.itheima" level="DEBUG" additivity="false">
       <appender-ref ref="Console"/>
   </logger>

   <!--
     level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
    , 默认debug
     <root>可以包含零个或多个<appender-ref>元素,标识这个输出位置将会被本日志级别控制。
     -->
   <root level="DEBUG">
       <appender-ref ref="Console"/>
   </root>
</configuration>

以上全都是一些配置文件

6、编码(从这里才开始编程)

(1)、定义一个POJO包

这个包中用来放一些工具类,用来简化主类中的代码

新建一个User类

public class User {

   private Integer id;
   private String username;
private String password;
   private String gender;
   private String addr;


   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 getPassword() {
       return password;
  }

   public void setPassword(String password) {
       this.password = password;
  }

   public String getGender() {
       return gender;
  }

   public void setGender(String gender) {
       this.gender = gender;
  }

   public String getAddr() {
       return addr;
  }

   public void setAddr(String addr) {
       this.addr = addr;
  }

   @Override
   public String toString() {
       return "User{" +
               "id=" + id +
               ", username='" + username + '\'' +
               ", password='" + password + '\'' +
               ", gender='" + gender + '\'' +
               ", addr='" + addr + '\'' +
               '}';
  }
}

 

(2)、新建一个主类MybatisDemo

import com.liuxin.pojo.User;
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;
import java.util.List;

public class MybatisDemo {
   public static void main(String[] args) throws IOException {
       //加载mybatis的核心配置文件,获取 SqlSessionFactory
       String resource = "mybatis-config.xml";
       InputStream inputStream = Resources.getResourceAsStream(resource);
       SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

       //获取sqlsession对象,用它来执行sql
       SqlSession sqlSession = sqlSessionFactory.openSession();

       //执行sql
       List<User> users = sqlSession.selectList("test.selectAll");

       System.out.println(users);

       //释放资源
       sqlSession.close();

  }
}

标签:String,入门,mybatis,import,MyBatis,org,logback,public,javaweb
From: https://www.cnblogs.com/suiyiliuxin-629728/p/16603551.html

相关文章

  • 前端学习之------Ajax入门
    传统网站中的问题:网速慢得情况下,页面加载事件长,用户只能等待;表单提交后,如果一项内容不合格,需要重新填写所有表单内容;页面跳转,需要重新加载页面,造成资源浪费,增加用户等......
  • Redis快速入门
    Redis快速入门本文只对Redis的常见命令和客户端使用做介绍1.初识RedisRedis是一种键值型的NoSql数据库,这里有两个关键字:键值型NoSql其中键值型,是指Redis中存储......
  • 正则表达式入门(七)量词
    1223334444555556666667777777888888889999999990000000000将排列成直角三角形的数字粘贴到程序中。贪心,懒惰和占有量词本身是贪心的,贪心的量词会首先匹配整......
  • 2022-08-19 田龙跃 JAVAWEB项目(小论坛)
    JAVA小项目E-R图个人理解:E-R图中每个实体到我们对java中就是一个domin类,字段就是属性流程图注册流程图登录流程图JSTL标签jstl表达式:表达式的用法也是见名知义(和......
  • mybatisplus-ActiveRecord 模式
    ActiveRecord模式直接调用Model对象来进行增删改查。实体类只需继承Model类即可进行强大的CRUD操作需要项目中已注入对应实体的BaseMapper实体类User点击查看代......
  • 01分数规划入门
    01分数规划入门 01分数规划,简单的来说,就是有一些二元组(si,pi),从中选取一些二元组,使得∑si/∑pi最大(最小)。这种题一类通用的解法就是,我们假设x=∑si/∑p......
  • Mybatis获取参数值的各种情况
    1.Mybatis获取参数值的两种方式MyBatis获取参数值的两种方式:#{}和${}{}:本质就是占位符赋值${}:本质就是字符串拼接2.单个字面量类型的参数什么是字面量??inta=......
  • RabbitMQ 入门系列:1、MQ的应用场景的选择与Rabbit安装
    1、MQ的应用场景的选择:可以参考网上的对比图: 遥想当年,MQ都是MSMQ(微软)的,现在,都不在参考图上了。对MQ的使用,根据应用场景,选择适合的MQ即可,本系列仅介绍RabbitMQ。2、......
  • Mybatis XML标签使用方法
    <selectid="queryPage"resultType="cn">select*fromTbWHERE1=1<iftest="param2.urgentDegree!=nullandparam2.urgentDegr......
  • SpringSecurity 新版2.7以上 快速入门
    SpringSecurity快速入门1、导入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></de......