使用mybatis操作MySQL中的数据库表1---读取数据
1)MySQL中创建表
create table student ( id int(11) not null, name varchar(255) default null, email varchar(255) default null, age int(11) default null, primary key(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into student(id,name,email,age) values (1,"zhangsan","zhangsan@hotmail.com",20);
insert into student(id,name,email,age) values (2,"lisi","lisi@hotmail.com",18);
select id,name,email,age from student;
2)加入Maven的mybatis坐标,MySQL驱动的坐标。
2.1)打开Eclipse,创建一个maven project, mybatis-practice。
2.2)配置pom.xml文件,使其包含如下内容。然后右键pom.xml,Maven,update project。
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>practice</groupId><artifactId>mybatis</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><name>mybatis-practice</name><dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency><dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency><dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
</dependencies><build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
3)创建实体类,student---保存表中的一行数据。
在src,main,java下面创建实体类domain.Student.java
package domain;
//建议类名和表名一致
public class Student {//定义属性private Integer id;private String name;private String email;private Integer age;public Integer getId() { return id; }public void setId(Integer id) { this.id = id; }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 Integer getAge() { return age; }public void setAge(Integer age) { this.age = age; }@Overridepublic String toString() { return "Student [id=" + id + ", name=" + name + ", email=" + email + ", age=" + age + "]"; }
}
4)创建持久层的dao接口,定义操作数据库的方法。
4.1)在src,main,java下面创建类dao.studentDAO.java
package dao;
import java.util.List;import domain.Student;
public interface studenDAO {// 查询student表的所有的数据public List<Student> selectStudents();
}
4.2)在src,main,java,dao下面创建配置文件 StudentDAO.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.studenDAO"><!--SQL语句段--><select id="selectStudents" resultType="domain.Student">select id,name,email,age from student order by id </select></mapper>
5)创建一个mybatis的主配置文件,一般一个项目一个该配置文件。该文件用来描述数据库的链接信息以及SQL映射文件的位置信息。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//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://192.168.1.66:3306/mysql?useUnicode=true&characterEncoding=utf8"/><property name="username" value="root"/><property name="password" value="******"/></dataSource></environment></environments><mappers><mapper resource="dao\StudentDAO.xml"/></mappers>
</configuration>
6)创建使用mybatis类。
import java.io.IOException;
import java.io.InputStream;
import java.util.List;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.*;import domain.Student;public class myApp {public static void main(String[] args) throws IOException {//访问mybatis读取student数据//1.定义mybatis主配置文件的名称,从类路径的跟开始String config="mybatis.xml";//2.读取这个config表示的文件InputStream in = Resources.getResourceAsStream(config);//3.创建了SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();//4.创建SqlsessionFactory对象SqlSessionFactory factory = builder.build(in);//5.重要,获取SqlSession对象,从Sqlsession对象中获取SqlSessionSqlSession sqlsession = factory.openSession();//6. 重要,指定要执行的sql语句的标识。sql映射文件中的namesapce+"."+标签的id值String sqlID="dao.studenDAO" + "." + "selectStudents";//7. 执行sql语句,通过SqlId找到语句List<Student> studentList = sqlsession.selectList(sqlID);//8.输出结果studentList.forEach(stu->System.out.println(stu));//9.关闭sqlsession对象sqlsession.close();}}
使用mybatis操作MySQL中的数据库表1---读取数据相关推荐
- 将mysql中的数据库表导出和导入
目录 导出数据库 导入数据库 导出数据库 如果你的mysql没有配置环境变量,首先需要进到你所安装的mysql目录下的bin目录 进入之后输入: mysqldump -uroot -p booksys ...
- 从MySQL中导出表中数据_用命令从mysql中导出/导入表结构及数据
在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看: mysqldump 最常用的: mysqldump -uroot -pmysql databasefo ...
- mysql 操作表的例子,mysql中库和表的简单操作总结(附示例)
本篇文章给大家带来的内容是关于mysql中库和表的简单操作总结(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一. 库的操作 1.创建数据库 创建数据库: create d ...
- mysql中视图和表的区别及联系_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...
一.MySQL中使用从表A中取出数据来更新表B的内容 例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin.SQL语言中不要显示的出现select关键字 upda ...
- 把Excel表格通过MySql Workbench导入数据库表中的使用总结
把Excel表格通过MySql Workbench导入数据库表中的使用总结 今天接到一个任务,把excel表中的数据导入到mysql数据库中,通过半个多小时的鼓捣,基本上摸清了里面的门道. 首先,准备 ...
- 在MySQL中实现交叉表查询2(动态交叉表)
在MySQL中实现交叉表查询2(动态交叉表) 交叉表分为静态交叉表和动态交叉表.其中静态交叉表中的列是固定的,因此相对容易实现:而动态交叉表中的列需要动态生成. 一.静态交叉表的实现 参见上一篇文章: ...
- Mybatis操作Oracle中的Clob和Blob字段
文章目录 Mybatis操作Oracle中的Clob和Blob字段 [ 我测试用的Mybatis Plus ] A.数据准备 A-1. Oracle中创建测试的表结构:Byte_Array_Test, ...
- oracle repeatable read,Oracle和Mysql中的数据库事务有关问题:Mysql Read-Repeatable有有关问题...
Oracle和Mysql中的数据库事务问题:Mysql Read-Repeatable有问题 今天不知不觉想到数据库的乐观锁和悲观锁,遂想写个程序测测,却发现了另一个问题,Mysql InnoDB的R ...
- mysql中什么是表?列?行?什么是主键和外键?什么是索引?为什么要使用索引?
mysql中什么是表?列?行? 在关系数据库中,表(Table)是数据的主要组织单元.它是由一组命名的列和行组成,用于存储和组织数据. 列(Column)是表中的一个字段,用于存储特定类型的数据.每个 ...
最新文章
- 联通和阿里云合作 建互联网云化卡号管理系统
- JavaScript 小记 之 闭包(Closures)
- SSDT表与ShadowSSDT表
- redis安装 linux步骤,【linux安装redis完整步骤】
- 计算机操作系统笔记——处理器调度
- K8S控制器类型:RC/RS、Deployment、DaemonSet、Job和CronJob、StatefulSet、HPA
- 基础知识—数据类型-常量及符号
- 国外字体设计师也是蛮重视数学的
- SQL查询分析器单文件绿色版
- 送送送!这本python少儿编程书籍竟然被出版社官宣了!
- Android的虚拟设备的缩写,Android虚拟设备的英语缩写是
- 安卓近距离通信--蓝牙通信开发
- 计算机专业小论文题目,计算机专业小类论文题目 计算机专业小论文题目怎样拟...
- 自己留着用的 .net 图片水印 方法
- E4A易安卓计次循环和变量循环及数组
- 剑灵灵动区服务器位置,剑灵第四次合服或将来临,终于合大区
- Linux几种包下载安装方式
- java实现根据指定日期获取今年 去年 本季度 上个季度 本月 上个月的值
- stm32管脚不能正常输出高低电平?
- 5g空分复用技术_中兴首席科学家向际鹰:空分复用是实现5G的关键
热门文章
- android java.lang.ClassNotFoundException但此类已存在
- OpenCV图片拼接
- 苹果汽车已上路测试,预计将于明年推出
- CSS3回炉计划-编码技巧
- 【c语言】(函数)金字塔图形问题:根据n的个数,输出由字母组成的一个金字塔图形
- CorelDRAW VBA - 段落文本内容的导出 ExportToFile 方法
- python 离群值_数据预处理初学者宝典:360° 掌握离群值识别
- Java 独占锁ReentrantLock、读(悲观读)写锁ReentrantReadWriteLock、读(乐观读/悲观读)写锁StampedLock
- 正态分布(近似正态分布)
- r语言C指数的置信区间,用R语言求置信区间