当前位置: 首页 > news >正文

巫溪县城乡建设委员会网站百度营稍

巫溪县城乡建设委员会网站,百度营稍,windows8风格网站模板,WordPress自定义文章URLMybatis方式完成CRUD操作 文章目录 Mybatis方式完成CRUD操作1、java以Mybatis方式操作DB1.1、配置数据源-创建 resources/mybatis-config.xml1.2、创建java bean-Monster1.3、配置Mapper接口声明方法1.4、配置xxMapper,完成SQL配置,实现CRUD操作1.5、Test测试 2、需…

Mybatis方式完成CRUD操作

文章目录

  • Mybatis方式完成CRUD操作
    • 1、java以Mybatis方式操作DB
      • 1.1、配置数据源-创建 resources/mybatis-config.xml
      • 1.2、创建java bean-Monster
      • 1.3、配置Mapper接口声明方法
      • 1.4、配置xxMapper,完成SQL配置,实现CRUD操作
      • 1.5、Test测试
    • 2、需要的Utils工具类
    • 3、pom基础依赖
    • 4、数据库建表操作

Java开发在以前做数据库连接的时候通过JDBC来完成,非常麻烦。

现在引入了MyBatis这个框架,Mybatis是简化数据库操作的持久层框架。

使用Mybatis的好处:

  • mybatis 可以将对数据表的操作(sql,方法)等等直接剥离,写到 xml 配置文件,实现和 java 代码的解耦
  • MyBatis 在 java 和 sql 之间提供更灵活的映射

1、java以Mybatis方式操作DB

在这里插入图片描述

1.1、配置数据源-创建 resources/mybatis-config.xml

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--    配置mybatis自带的日志输出--><settings><setting name="logImpl" value="STDOUT_LOGGING"/></settings><!--    配置类型别名--><typeAliases><typeAlias type="com.linghu.entity.Monster" alias="Monster"/></typeAliases><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://127.0.0.1:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/><!--               数据库的用户名和密码--><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><!--    这里设置我们需要管理的mapper.xml文件--><!--    可以通过快捷键copy这个地址--><mappers><mapper resource="com/linghu/mapper/MonsterMapper.xml"/></mappers></configuration>

1.2、创建java bean-Monster

创建bean的时候要对照自己设计的数据库表字段进行设计,要一一对应!

package com.linghu.entity;import java.util.Date;/*** @author 令狐荣豪* @version 1.0* Monster类和monster表有对应关系,字段要对应* 体现oop*/
public class Monster {private Integer id;private Integer age;private String name;private String email;private Date birthday;private double salary;private Integer gender;public Monster() {}public Monster(Integer id, Integer age, String name, String email, Date birthday, double salary, Integer gender) {this.id = id;this.age = age;this.name = name;this.email = email;this.birthday = birthday;this.salary = salary;this.gender = gender;}@Overridepublic String toString() {return "Monster{" +"id=" + id +", age=" + age +", name='" + name + '\'' +", email='" + email + '\'' +", birthday=" + birthday +", salary=" + salary +", gender=" + gender +'}';}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}public Integer getGender() {return gender;}public void setGender(Integer gender) {this.gender = gender;}
}

1.3、配置Mapper接口声明方法

package com.linghu.mapper;import com.linghu.entity.Monster;import java.util.List;/*** @author 令狐荣豪* @version 1.0* 定义增删改查的接口方法*/
public interface MonsterMapper {
//    添加monsterpublic void addMonster(Monster monster);//根据id删除一个Monsterpublic void delMonster(Integer id);//修改 Monsterpublic void updateMonster(Monster monster);//查询-根据 idpublic Monster getMonsterById(Integer id);//查询所有的 Monsterpublic List<Monster> findAllMonster();
}

1.4、配置xxMapper,完成SQL配置,实现CRUD操作

Monstermapper.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.linghu.mapper.MonsterMapper"><!--    <select id="selectBlog" resultType="Blog">-->
<!--        select * from Blog where id = #{id}-->
<!--    </select>-->
<!--    private Integer id;private Integer age;private String name;private String email;private Date birthday;private double salary;private Integer gender;--><insert id="addMonster" parameterType="com.linghu.entity.Monster">insert into `monster`(`age`,`birthday`,`email`,`gender`,`name`,`salary`)
<!--            values(10,null,'linghu@qq.com',1,'kate',1000),修改成活数据-->
<!--            下面的名称对应的Monster对象的属性名-->values(#{age},#{birthday},#{email},#{gender},#{name},#{salary})</insert><delete id="delMonster" parameterType="Integer">delete from `monster` where id=#{id};</delete><!--    这里的入参类型最好不要简写!-->
<!--    配置类型别名后这里可以简写Monster-->
<!--    <update id="updateMonster" parameterType="com.linghu.entity.Monster">--><update id="updateMonster" parameterType="Monster">update `monster` set `age`=#{age},`birthday`=#{birthday},`email`=#{email},`gender`=#{gender},`name`=#{name},`salary`=#{salary}where id=#{id}</update><!--     resultType是个别名--><select id="getMonsterById" parameterType="Integer" resultType="Monster">select * from `monster` where id=#{id};</select><!--    查询全部结果--><select id="findAllMonster" resultType="Monster">select * from `monster`;</select></mapper>

1.5、Test测试

package com.linghu.mapper;import com.linghu.entity.Monster;
import com.linghu.util.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;import java.util.Date;
import java.util.List;/*** @author 令狐荣豪* @version 1.0*/
public class MonsterMapperTest {private SqlSession sqlSession;private MonsterMapper monsterMapper;@Beforepublic void init(){//通过SqlSessionFactory获取一个SqlSession会话sqlSession= MyBatisUtils.getSqlSession();//获取MonsterMapper接口对象,该对象实现了MonsterMappermonsterMapper=sqlSession.getMapper(MonsterMapper.class);System.out.println(monsterMapper.getClass());}//    @Test
//    public void t1(){
//        System.out.println("t1()。。。");
//    }@Testpublic void addMonster(){for (int i=0;i<3;i++){Monster monster = new Monster();monster.setAge(10+i);monster.setBirthday(new Date());monster.setEmail("lignhu@qq.com");monster.setGender(1);monster.setName("松鼠精"+i);monster.setSalary(1000+i*10);
//            id不用设置monsterMapper.addMonster(monster);System.out.println("添加对象-"+monster);}//如果是增删改,需要提交事务if (sqlSession!=null){sqlSession.commit();sqlSession.close();}System.out.println("保存成功···");}@Testpublic void delMonster(){monsterMapper.delMonster(2);//如果是增删改,需要提交事务if (sqlSession!=null){sqlSession.commit();sqlSession.close();}System.out.println("删除成功···");}@Testpublic void updateMonster(){Monster monster = new Monster();monster.setAge(200);monster.setBirthday(new Date());monster.setEmail("hspedu@sohu.com");monster.setGender(2);monster.setName("狐狸精");monster.setSalary(9234.89);monster.setId(4);monsterMapper.updateMonster(monster);if (sqlSession != null) {sqlSession.commit();sqlSession.close();}System.out.println("修改 ok");}@Testpublic void getMonsterById(){
//        Monster monster = new Monster();Monster monster=monsterMapper.getMonsterById(6);System.out.println("monster="+monster);if (sqlSession != null) {sqlSession.commit();sqlSession.close();}System.out.println("查询 ok");}@Testpublic void findAllMonster(){ //查询全部结果List<Monster> allMonster = monsterMapper.findAllMonster();for (Monster monster :allMonster) {System.out.println(monster);}if (sqlSession != null) {sqlSession.close();}System.out.println("查询 ok");}
}

2、需要的Utils工具类

工具类MyBatisUtils.java

package com.linghu.util;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 javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;/*** @author 令狐荣豪* @version 1.0* 这是一个工具类,可以得到Sqlsession会话,这个会话提供了执行SQL命令的方法CRUD*/
public class MyBatisUtils {private static SqlSessionFactory sqlSessionFactory;static {//静态代码块-初始化sqlSessionFactory对象try {/*** 指定资源文件*/String resource="mybatis-config.xml";//指定资源文件流InputStream inputStream = Resources.getResourceAsStream(resource);//获取SqlSession实例sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}/*** 返回一个SQLSession会话,这个会话提供了执行SQL命令的方法CRUD* @return*/public static SqlSession getSqlSession(){return sqlSessionFactory.openSession();}
}

3、pom基础依赖

<?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>com.linghu</groupId><artifactId>Linghu_Mybatis</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules>
<!--        这里可以看到父项目下有哪些子项目--><module>mybatisqucikstart</module></modules><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- 导入依赖 --><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.7</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies><!--    配置resources-->
<!--    配置目的:将src/main/java目录和子目录和src/main/resources目录和子目录的
资源文件xml和properties在build项目时,导出到对应的target目录下
--><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include><include>**/*.properties</include></includes></resource></resources></build></project>

4、数据库建表操作

CREATE DATABASE `mybatis`
CREATE TABLE `monster` (`id` INT NOT NULL AUTO_INCREMENT, `age` INT NOT NULL, `birthday` DATE DEFAULT NULL, `email` VARCHAR(255) NOT NULL , `gender` TINYINT NOT NULL, `name` VARCHAR(255) NOT NULL, `salary` DOUBLE NOT NULL,PRIMARY KEY (`id`)
) CHARSET=utf8

在这里插入图片描述
在这里插入图片描述

http://www.hrbkazy.com/news/14360.html

相关文章:

  • 在什么网站做知识禁毒竞赛媒体广告投放平台
  • 网页制作专业知识免费的seo网站下载
  • 百度智能建站适合优化吗企业文化标语
  • 平面设计创意网站建设今日微博热搜榜前十名
  • 电子科技公司网站网页设计专业的seo外包公司
  • dwcs5怎么做网站陕西seo优化
  • 医疗类网站前置审批百度视频推广怎么收费
  • 防红域名生成天津关键词优化专家
  • 广宗企业做网站域名买卖交易平台
  • 电脑上wap网站年度关键词有哪些
  • 做视频网站的公司有哪些seo标题关键词怎么写
  • 衢州网站建设专业的公司搜索引擎优化的主要特征
  • 兼职游戏网站怎么做百度公司
  • 百度的seo关键词优化怎么弄windows优化大师官方
  • 网站建设存在困难google play 安卓下载
  • 给会所做网站如何发布视频赚钱
  • 西安专业网站制作服务如何查询百度搜索关键词排名
  • 无锡企业网站seoseo单词优化
  • 相城区建设网站网站建设百度推广
  • 大连企业网站设计做百度推广一个月多少钱
  • 国内装修公司十大排名有哪些苏州seo关键词优化报价
  • 企业网站优化设计应该把什么放在首位百度手机关键词排名工具
  • 服务器和电脑主机的区别天津seo排名效果好
  • 查看网站信息图标怎么做国内好的seo网站
  • 做存储各种环境信息的网站网站维护中
  • 购物网站需要做的功能怎么自己刷推广链接
  • 长沙app开发报价电脑优化大师有用吗
  • 商城网站建设定制百度产品优化排名软件
  • 网站支付接口阿里巴巴国际贸易网站
  • 2023b站免费推广网网络推广专员是干什么的