MyBatis对数据库的增删改查操作,简单示例

之前一直实用Hibernate进行开发,最近公司在使用Mybatis,根据网上的示例,做了一个简单的Demo,以便日后复习

总体结构如下图

首先是创建一个工程,然后导入两个jar包,然后编写mybatis的jdbc配置文件Configuration.xml

Configuration.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>
	<typeAliases>
		<typeAlias alias="User" type="com.demo.bean.User" />
	</typeAliases>

	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
				<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
				<property name="username" value="scott" />
				<property name="password" value="scott" />
			</dataSource>
		</environment>
	</environments>

	<mappers>
		<mapper resource="com/demo/bean/User.xml" />
	</mappers>
</configuration>

User类,文章中省略getter和setter方法

package com.demo.bean;

import java.util.Date;

public class User {
	private String id;
	private String name;
	private String password;
	private Date birthday;
	private String address;

}

然后是创建sql映射文件User.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="com.demo.bean.User">
	<!-- 查询所有用户 -->
	<select id="selectAllUsers" resultType="User">
		select * from valid_user
	</select>

	<!-- 根据id查询用户 -->
	<select id="findUserById" resultType="User">
		select * from valid_user where id=#{id}
	</select>

	<!-- 根据id更新用户 -->
	<select id="updateUserById" resultType="User">
		update valid_user set name=#{name},address=#{address} where id=#{id}
	</select>

	<!-- 添加新用户 -->
	<select id="addUser" resultType="User">
		insert into valid_user(id,name,password,address) values(seq_valid_user.nextval,#{name},#{password},#{address})
	</select>

	<!-- 根据id删除用户 -->
	<delete id="deleteUserById">
		delete from valid_user where id=#{id}
	</delete>
</mapper>

然后就是编辑测试类

package com.demo.Test;

import java.io.Reader;
import java.util.List;

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 com.demo.bean.User;

public class TestConnection {
	private static SqlSessionFactory sqlSessionFactory;
	private static Reader reader;

	static {
		try {
			reader = Resources.getResourceAsReader("Configuration.xml");
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 查询所有User对象
	 * @param id
	 */
	public static void selectAllUsers() {
		SqlSession session = sqlSessionFactory.openSession();
		try {
			List<User> listUsers = session.selectList("com.demo.bean.User.selectAllUsers");
			for (User user:listUsers) {
				System.out.println("ID:" + user.getId() + ",姓名:" + user.getName() + ",密码:" + user.getPassword() + ",住址:" + user.getAddress());
			}
		} finally {
			session.close();
		}
	}

	/**
	 * 根据id查询User对象
	 * @param id
	 */
	public static void findUserById(String id) {
		SqlSession session = sqlSessionFactory.openSession();
		try {
			User user = (User) session.selectOne("com.demo.bean.User.findUserById", id);
			System.out.println("ID:" + user.getId() + ",姓名:" + user.getName() + ",密码:" + user.getPassword() + ",住址:" + user.getAddress());
		} finally {
			session.close();
		}
	}

	/**
	 * 根据id更新User对象
	 * @param id
	 */
	public static void updateUserById(String id,User user) {
		SqlSession session = sqlSessionFactory.openSession();
		try {
			session.update("com.demo.bean.User.updateUserById",user);
			session.commit();
		} finally {
			session.close();
		}
	}

	/**
	 * 添加一条User对象
	 */
	public static void addUser(User user) {
		SqlSession session = sqlSessionFactory.openSession();
		try {
			session.insert("com.demo.bean.User.addUser",user);
			session.commit();
		} finally {
			session.close();
		}
	}

	/**
	 * 删除一条User对象
	 */
	public static void deleteUserById(String id) {
		SqlSession session = sqlSessionFactory.openSession();
		try {
			session.delete("com.demo.bean.User.deleteUserById",id);
			session.commit();
		} finally {
			session.close();
		}
	}

	public static void main(String[] args) {

		selectAllUsers();

//		findUserById("1"); // 根据id查询User对象

//		User user=new User();
//		user.setId("2");
//		user.setName("Zams");
//		user.setAddress("河南、郑州");
//		updateUserById("2",user);	// 根据id更新User对象
//		findUserById("2"); 

//		User add_user=new User();
//		add_user.setName("古力娜扎");
//		add_user.setPassword("3412312");
//		add_user.setAddress("河南、郑州、开封");
//		addUser(add_user);	// 根据id更新User对象
//		findUserById("5"); 

//		deleteUserById("4");
	}
}

运行效果如下;

ID:1,姓名:X-rapido,密码:rapido,住址:北京朝阳、海淀
ID:2,姓名:Zams,密码:gril,住址:河南、郑州
ID:3,姓名:盖尔加朵,密码:3412312,住址:河南、郑州
ID:5,姓名:古力娜扎,密码:3412312,住址:河南、郑州、开封
时间: 2024-11-08 19:04:06

MyBatis对数据库的增删改查操作,简单示例的相关文章

使用MyEclipse对MongoDB数据库 进行增删改查操作

前面写了一篇MongoDB的下载与安装,接下来此篇写的是MongoDB数据库在JAVA程序中的基本功能: 使用MyEclipse对MongoDB数据库进行增删改查操作 1.导入JAR包 使用了Spring3.0:此类包,可以上网查询"MongoDB相关JAR包" 2.创建一个Person实体类 源代码如下: public class Person(){ //属性 Private String id; //id Private String name; //name Private in

Mybatis实现单表增删改查操作

mybatis是对持久层进行了封装.mybatis文档地址:https://mybatis.org/mybatis-3/zh/index.html 下面实现单表的增删改查操作. 1.新建maven项目命名为mybatis.并在pom.xml中引入相关依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"

基于Java的XML文件模拟数据库进行增删改查操作

我们知道XML文件既可以用来进行数据的传输,也可以配合DTD约束文件用来作为配置文件,当然其本质就是一个加了标签以及众多空格保持格式的字符串,那么就可以用Java进行操作. 本例是使用MyEclipse带入DOM4j解析时要用的jar包的基础上做的:当然DOM4j相对于DOM SAX 等解析方式的方便程度是不言而喻的. 下面是本次用例XML文件 <?xml version="1.0" encoding="UTF-8"?> <persons> 

java程序设计课期中考试——数据库的增删改查和简单的js界面

首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他语言的html,各种标识语言和html语法一致,但为了在本界面检测各种信息的正确性,需要嵌入java的语句进行判断. 对于数据库的增删改查,我们使用sql语句,并且导入了相应的mysql的jar包,方便我们用java对数据库进行操作. 整体来说,我们编写使用了MVC模式(model-view-con

Django中ORM对数据库的增删改查操作

什么是ORM?  ORM(对象关系映射)指用面向对象的方法处理数据库中的创建表以及数据的增删改查等操作. 简而言之,就是将数据库的一张表当作一个类,数据库中的每一条记录当作一个对象.在Django中定义一个类,就是在数据库中创建一张表格.在Django中实例化一个类的对象,就是在数据库中增加了一条记录.在Django中删除一个对象,就是在数据库中删除了一条记录.在DJango中更改一个对象的属性,就是在数据库中修改一条记录的值.在django中遍历查询对象的属性值,就是在数据库中查询记录的值.

nodejs对mongodb数据库的增删改查操作(转载)

首先要确保mongodb的正确安装,安装参照:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian-or-ubuntu-linux 另外可以参考我的另一篇博文 http://www.cnblogs.com/sexintercourse/p/5774310.html 指导mongo和nodejs的开发 然后下载nodejs的mongodb的driver npm install mongodb 编写一个测试的程序: 1 v

用MyBatis进行数据库的增删改查

前提是MyBatis环境部署好了,参考地址: https://www.cnblogs.com/package-java/p/10316536.html 为了方便演示,我提前在数据库插入了数据方便查询 1. 创建新的数据库`tedu_ums`:      CREATE DATABASE tedu_ums;  2. 在新数据库中创建数据表`t_user`,表中至少包含id, username, password, age, phone, email这6个属性:       USE tedu_ums;

Django数据库基本增删改查操作

urls.py文件里的内容---实现url路由 from django.contrib import admin from django.urls import path,include from app01 import views urlpatterns = [ path('credata/', views.credata), ] views.py文件里方法定义 from django.shortcuts import HttpResponse import pymysql pymysql.

Java连接本地MySQL数据库进行增删改查操作

package Dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import entity.UserInfo; public class JDBC { Connection conn