mybatis select count(*) 一直返回0 mysql_Mybatis教程1:MyBatis快速入门

点击上方“Java技术前线”,选择“置顶或者星标”

与你一起成长

一、Mybatis介绍

8e008c1297225cff6bfdbcd22f1c69bf.png

MyBatis是一个支持普通*SQL*查询存储过程高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解**用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

二、mybatis快速入门

2.1、准备开发环境

1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:

3ff936dc740f5fb7f4005fc2cffb2b04.png

2、添加相应的jar包

*  【mybatis】*

mybatis-3.1.1.jar

*  【MYSQL驱动包】* mysql-connector-java-5.1.7-bin.jar

a0c44e0dbf2edc7dce6650e96bb2ba45.png

3、创建数据库和表,针对MySQL数据库

SQL脚本如下:

create database mybatis;

use mybatis;

CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);

INSERT INTO users(NAME, age) VALUES('孤傲苍狼', 27);

INSERT INTO users(NAME, age) VALUES('白虎神皇', 27);

将SQL脚本在MySQL数据库中执行,完成创建数据库和表的操作,如下:

240916633f4b6f4ebac8d3f8670e1d48.png

到此,前期的开发环境准备工作全部完成。

2.2、使用MyBatis查询表中的数据

1、添加Mybatis的配置文件conf.xml

在src目录下创建一个conf.xml文件,如下图所示:

39228bcd8d216b7ae3d6f916e8afb7ec.png

conf.xml文件中的内容如下:

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" />

<property name="username" value="root" />

<property name="password" value="XDP" />

dataSource>

environment>

environments>

configuration>

2、定义表所对应的实体类,*如下图所示:*

*  f30ea0e20cc7e039aabb04e2c2bd2f82.png*

User类的代码如下:

package me.gacl.domain;

/**

* @author gacl

* users表所对应的实体类

*/

public class User {

//实体类的属性和表的字段名称一一对应

private int id;

private String name;

private int age;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "User [id=" + id + ", name=" + name + ", age=" + age + "]";

}

}

3、定义操作users表的sql映射文件userMapper.xml

创建一个me.gacl.mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件,如下图所示:

6fd8fc09d440ff088e9dd5d541833b35.png

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">

<mapper namespace="me.gacl.mapping.userMapper">

<select id="getUser" parameterType="int"

resultType="me.gacl.domain.User">

select * from users where id=#{id}

select>

mapper>

4、在conf.xml文件中注册userMapper.xml文件

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" />

<property name="username" value="root" />

<property name="password" value="XDP" />

dataSource>

environment>

environments>

<mappers>

<mapper resource="me/gacl/mapping/userMapper.xml"/>

mappers>

configuration>

5、编写测试代码:执行定义的select语句

创建一个Test1类,编写如下的测试代码:

package me.gacl.test;

import java.io.IOException;

import java.io.InputStream;

import java.io.Reader;

import me.gacl.domain.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;

public class Test1 {

public static void main(String[] args) throws IOException {

//mybatis的配置文件

String resource = "conf.xml";

//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)

InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);

//构建sqlSession的工厂

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

//使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)

//Reader reader = Resources.getResourceAsReader(resource);

//构建sqlSession的工厂

//SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);

//创建能执行映射文件中sql的sqlSession

SqlSession session = sessionFactory.openSession();

/**

* 映射sql的标识字符串,

* me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,

* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL

*/

String statement = "me.gacl.mapping.userMapper.getUser";//映射sql的标识字符串

//执行查询返回一个唯一user对象的sql

User user = session.selectOne(statement, 1);

System.out.println(user);

}

}

执行结果如下:

674585b05a4d97e6a3501c0be03c615d.png

可以看到,数据库中的记录已经成功查询出来了。

作者:孤傲苍狼

来源:https://www.cnblogs.com/xdp-gacl/p/4261895.html

热门内容:

  • 888G面试资源分享
  • 腾讯云双11特惠秒杀:1核2G配置云服务器,88元/1年
  • 2019年Java经典面试题汇总
  • Maven教程1:Maven入门
  • Maven教程2:Maven项目构建过程练习
  • Maven教程3:使用Maven构建项目
  • Maven教程4:Maven核心概念
  • Maven教程5: 聚合与继承
  • Maven教程6: Maven与Eclipse整合
  • Maven教程7:eclipse中使用Maven创建Web项目.md
  • Maven教程8: 使用Maven构建多模块项目
  • Maven教程9: 使用Nexus搭建Maven私服

e3e14150a67a46a614879e9fb1277de0.png

喜欢就点个"在看"呗^_^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css预处理器sass使用教程(多图预警)

css预处理器赋予了css动态语言的特性&#xff0c;如变量、函数、运算、继承、嵌套等&#xff0c;有助于更好地组织管理样式文件&#xff0c;以及更高效地开发项目。css预处理器可以更方便的维护和管理css代码&#xff0c;让整个网页变得更加灵活可变。对于预处理器&#xff0c;…

Sharepoint学习笔记—Site Definition系列-- 2、创建Content Type

Sharepoint本身就是一个丰富的大容器&#xff0c;里面存储的所有信息我们可以称其为“内容(Content)”&#xff0c;为了便于管理这些Conent&#xff0c;按照人类的正常逻辑就必然想到的是对此进行“分类”。分类所涉及到的层面又必然包括: 1、分类的标准或特征描述{即&#xf…

arduino byte转string_Java数组转List集合的三驾马车

点击上方 蓝字关注我们来源&#xff1a;blog.csdn.net/x541211190/article/details/79597236前言本文中的代码命名有的可能不太规范&#xff0c;是因为没法排版的问题&#xff0c;小仙已经很努力去解决了&#xff0c;希望各位能多多点赞、分享。好了&#xff0c;不多bb了(不要让…

ES6笔记(4)-- Symbol类型

系列文章 -- ES6笔记系列 Symbol是什么&#xff1f;中文意思是标志、记号&#xff0c;顾名思义&#xff0c;它可以用了做记号。 是的&#xff0c;它是一种标记的方法&#xff0c;被ES6引入作为一种新的数据类型&#xff0c;表示独一无二的值。 由此&#xff0c;JS的数据类型多了…

手把手教你如下在Linux下如何写一个C语言代码,编译并运行

文章目录手把手教你如下在Linux下如何写一个C语言代码&#xff0c;编译并运行打开Ubuntu终端创建 helloworld.c编译C文件手把手教你如下在Linux下如何写一个C语言代码&#xff0c;编译并运行 打开Ubuntu终端 我这里的终端是Windows下的WSL&#xff0c;如果有疑问&#xff0c;…

邮件群发工具的编写(二)数据的保存

数据的保存与读取 人类是在不断探索与改进中进步的 上一篇&#xff0c;邮件群发工具的编写&#xff08;一&#xff09;邮件地址提取&#xff0c;我们讲到了邮箱的提取。 那么这一篇&#xff0c;讲一下提取完的邮箱信息的保存和读取。 首先&#xff0c;我希望对上一篇邮箱提取类…

c++ lambda函数_C++11 之 lambda函数的详细使用

1. lambda 函数概述lambda 表达式是一种匿名函数&#xff0c;即没有函数名的函数&#xff1b;该匿名函数是由数学中的λ演算而来的。通常情况下&#xff0c;lambda函数的语法定义为&#xff1a;[capture] (parameters) mutable ->return-type {statement}其中&#xff1a;[c…

pytorch 正向与反向传播的过程 获取模型的梯度(gradient),并绘制梯度的直方图

记录一下怎样pytorch框架下怎样获得模型的梯度 文章目录引入所需要的库一个简单的函数模型梯度获取先定义一个model如下定义两个获取梯度的函数定义一些过程与调用上述函数的方法可视化一下梯度的histogram引入所需要的库 import os import torch import torch.nn as nn impor…

ubuntu升级python_Ubuntu 升级python3为更高版本【已实测】

2020-04-13 更新安装步骤&#xff1a; 1. 先update一下 sudo apt update 2. 安装依赖库 sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-d…

Framework打包

2019独角兽企业重金招聘Python工程师标准>>> iOS app需要在许多不同的CPU架构下运行&#xff1a; arm7: 在最老的支持iOS7的设备上使用 arm7s: 在iPhone5和5C上使用 arm64: 运行于iPhone5S的64位 ARM 处理器 上 i386: 32位模拟器上使用 x86_64: 64为模拟器上使用…

windows 10 下利用WSL的Linux环境实现vscode C/C++环境的配置

本文主要结合二个工具&#xff0c;介绍如何在windows搭建Linux开发环境&#xff1a; WSL(Windows Subsystem for Linux)VSCode(Visual Studio Code) 文章目录WSL安装VSCode安装配置Linux下的C/C环境1. 打开WSL的控制台2. 更新ubuntu软件3. 安装GCC和GDB4. 配置VSCode(1). 打开…

Windows 11下 WSL使用 jupyter notebook

这里写目录标题前言在WSL下的配置测试运行更优雅的启动方法配置jupyter生成默认配置文件生成秘钥修改配置文件nohup启动前言 一直都使用jupyter notebook&#xff0c;不管做数据分析&#xff0c;还是调试代码&#xff0c;还有写文章都是。但是好像在WSL下又不好使。看了网上有…

sql2000导出mysql_如何将sql2000的数据库导入到mysql中?

展开全部先用SQl2000导出e68a843231313335323631343130323136353331333262373366文本文件&#xff0c;把后缀名改为CSv&#xff0c;再从Mysql中一导入OK参考&#xff1a;第一种是安装mysql ODBC&#xff0c;利用sql server的导出功能&#xff0c;选择mysql数据源&#xff0c;进…

实现日、周、月排行统计 sql

在如今很多系统中&#xff0c;都需要进行日、周、月排行统计&#xff0c;但是在网上寻找 了一番&#xff0c;发现很多都是相对的周、月排行&#xff0c;即周排行则用当前时间减去7天。这样我个人认为并不恰当。如月排行中&#xff0c;假设今天是4月22日,则从3月22日至4月22日之…

产品运行所需的信息检索失败_为服务业注入新活力,华北工控推出服务机器人专用计算机产品方案...

近年来&#xff0c;随着人口老龄化趋势加快和信息科技革命的持续推进&#xff0c;服务机器人已经被当作社会劳动力的一部分在医疗、教育、餐饮等行业广泛应用&#xff0c;市场潜力巨大。01、需求带动消费&#xff0c;科技改变服务服务机器人是国内智能机器人产业发展最快的分支…

Windows更新没有更新提示:从windows 10升级到Windows 11,并WSL下配置cuda

文章目录从windows 10 升级到Windows 11安装WSL的安装配置cuda从windows 10 升级到Windows 11 升级的方法有很多种&#xff0c;各大网站都有。有更新提示的按更新提示操作即可。我的是一直都没有更新提示&#xff0c;也搜索过网上的一些方法&#xff0c;但都不行。还是没法更新…

js修改css样式属性_这个笔记《CSS样式的常见属性及值》,让菜鸟轻松学会包粽子...

常见样式属性及值字体:font-family-size-style: normal(正常)|italic(倾斜)|oblique-weight: normal|bold(粗体)如果组合起来编写: font: style weight size family字体大小的单位可以是 px, em, rem, pt, cm, mm, in, pc文本:colortext-align(水平对齐方式): left|center|righ…

在 VirtualBox 中 CentOS 网络设置

转自&#xff1a;本文发表于水景一页。永久链接&#xff1a;<http://cnzhx.net/blog/minimal-centos-in-virtualbox/>。转载请保留此信息及相应链接。 4. 设置 按照上面的方法安装之后&#xff0c;还需要一些简单的设置&#xff0c;比如网络访问。然后既然是做网页服务器…

vscode C++ 分文件、文件夹编译配置与错误解决

文章目录问题includesourceout配置过程遇到的问题与解决遇到的问题1解决步骤1. ctrl shift p2. 配置json文件修改task.json文件修改launch.json可能遇到的错误1. collect2: error: ld returned 1 exit status2. /mnt/d/tmp/c/source/add.cpp:3:10: fatal error: add.h: No su…

淘淘商城项目mysql服务器_SpringMVC+Spring+Mybatis+Mysql+Maven+Svn[ 淘淘商城项目环境搭建 ]...

背景&#xff1a;淘淘商城项目的环境搭建说明&#xff1a;采用SpringMVCSpringMybatisMysqlMavenSvn结构搭建&#xff0c;在开发之中可以参考其结构和搭建步骤去搭建实际的工程项目工程结构简图&#xff1a;项目结构&#xff1a;---------------------------------------------…