mybatis--实现数据库增删改查
首先,创建一个数据库my,并在数据库中插入一张表user,然后在user表中插入一行数据,代码如下:
- create database my;
- use my;
- create table user(
- id int(10) auto_increment,
- name varchar(64),
- level varchar(256),
- phone varchar(256),
- primary key(id)
- );
- insert into user(id,name,level,phone) values(1,'a','a','1234555666');
其次,创建mybatis配置文件config.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.zk.model.User" />
- </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://localhost:3306/my"/>
- <property name="username" value="root"/>
- <property name="password" value="123456"/>
- </dataSource>
- </environment>
- </environments>
- <mappers>
- <!-- // power by http://www.yiibai.com -->
- <mapper resource="com/zk/model/UserMapper.xml" />
- </mappers>
- </configuration>
再次,创建一个IUser.java接口
- package com.zk.dao;
- import java.util.List;
- import com.zk.model.User;
- public interface IUser {
- //增加
- public void addUser(User user);
- //删除
- public void deleteUser(int id);
- //更新
- public void updateUser(User user);
- //删除
- public User selectUser(int userid);
- //查看所有使用者
- public List<User> selectAllUser();
- }
创建一个User.java实体类
- package com.zk.model;
- public class User {
- private int id;
- private String name;
- private String level;
- private String phone;
- 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 String getLevel() {
- return level;
- }
- public void setLevel(String level) {
- this.level = level;
- }
- public String getPhone() {
- return phone;
- }
- public void setPhone(String phone) {
- this.phone = phone;
- }
- @Override
- public String toString() {
- return "User [id=" + id + ", name=" + name + ", level=" + level
- + ", phone=" + phone + "]";
- }
- }
接着,在配置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="com.zk.dao.IUser">
<insert id="addUser" parameterType="User">
Insert into user(id,name,level,phone) values(#{id},#{name},#{level},#{phone});- </insert>
- <delete id="deleteUser" parameterType="User">
- delete from user where id=#{id};
- </delete>
- <update id="updateUser" parameterType="User">
- update user set name=#{name},level=#{level},phone=#{phone} where id=#{id};
- </update>
- <select id="selectUser" parameterType="User" resultType="com.zk.model.User">
- Select * from user where id=#{id};
- </select>
- <select id="selectAllUser" resultType="com.zk.model.User">
- Select * from user;
- </select>
- </mapper>
最后,构建一个Main.java,实现数据库增删改查的功能:
- package MainApp;
- import java.io.IOException;
- 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.zk.dao.IUser;
- import com.zk.model.User;
- public class Main {
- private static SqlSessionFactory sqlsessionfactory;
- private static Reader reader;
- static{
- try {
- reader=Resources.getResourceAsReader("config/config.xml");
- sqlsessionfactory=new SqlSessionFactoryBuilder().build(reader);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public SqlSessionFactory getSqlSessionFactory()
- {
- return sqlsessionfactory;
- }
- public static void main(String[]args)
- {
- //Insert();
- //delete();
- //update();
- select(1);
- }
- public static void Insert(){
- //获取session连接
- SqlSession session=sqlsessionfactory.openSession();
- //获取mapper
- IUser usermap=session.getMapper(IUser.class);
- //执行插入
- User user1=new User();
- user1.setId(1);
- user1.setLevel("a");
- user1.setName("a");
- user1.setPhone("19832321123");
- usermap.addUser(user1);
- //提交事务
- //获取插入信息
- session.commit();
- selectAllUser();
- }
- public static void delete(){
- //获取session连接
- SqlSession session=sqlsessionfactory.openSession();
- //获取mapper
- IUser usermap=session.getMapper(IUser.class);
- //执行删除
- usermap.deleteUser(1);
- session.commit();
- selectAllUser();
- }
- public static void update(){
- //获取session连接
- SqlSession session=sqlsessionfactory.openSession();
- //获取mapper
- IUser usermap=session.getMapper(IUser.class);
- selectAllUser();
- User user = usermap.selectUser(1);
- user.setName("c");
- //执行删除
- usermap.updateUser(user);
- session.commit();
- selectAllUser();
- }
- public static void select(int id){
- //获取session连接
- SqlSession session=sqlsessionfactory.openSession();
- //获取mapper
- IUser usermap=session.getMapper(IUser.class);
- //selectAllUser();
- User user = usermap.selectUser(id);
- //执行查询
- System.out.println(user.toString());
- session.commit();
- //selectAllUser();
- }
- private static void selectAllUser() {
- // TODO Auto-generated method stub
- SqlSession session=sqlsessionfactory.openSession();
- IUser user=session.getMapper(IUser.class);
- printUser(user.selectAllUser());
- }
- private static void printUser(final List<User> users) {
- // TODO Auto-generated method stub
- int count = 0;
- for (User user : users) {
- System.out.println("User Id: " + user.getId());
- System.out.println("User Name: " + user.getName());
- System.out.println("User Dept: " + user.getLevel());
- System.out.println("User Website: " + user.getPhone());
- }
- }
- }
这样就完成了数据库的增删改查。
程序结构如下图所示:
mybatis--实现数据库增删改查的更多相关文章
- Mybatis入门之增删改查
Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...
- MyBatis -- 对表进行增删改查(基于注解的实现)
1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1 首先须要定义映射sql的 ...
- Spring Boot 使用Mybatis注解开发增删改查
使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- 2. MongoDB基本操作 —— 用Mongo.exe操作数据库增删改查
一.开篇 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象 ...
- go——beego的数据库增删改查
一直都不理解使用go语言的时候,为什么还要自己去装beego,以为使用go便可以解决所有的问题,结果在朋友的点拨下,才意识到: go与beego的关系就好比是nodejs与thinkjs的关系,因此也 ...
- (转)SQLite数据库增删改查操作
原文:http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059182.html SQLite数据库增删改查操作 一.使用嵌入式关系型SQLite数 ...
- Yii2.0高级框架数据库增删改查的一些操作
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
随机推荐
- 巴塞尔问题(Basel problem)的多种解法
巴塞尔问题(Basel problem)的多种解法——怎么计算\frac{1}{1^2}+\frac{1}{2^2}+\frac{1}{3^2}+\cdots112+122+132+⋯ ? (PS:本 ...
- LeetCode 860. 柠檬水找零 (贪心)
在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 美元或 20 美元.你必须给 ...
- 1080 Graduate Admission
大致题意就是有N个学生,有M个学校,每个学校的名额都是正整数.每个学生可以填K个学校志愿,N个学生一起排名以后,排名高的学生先挑学校,不保护一志愿. 题目要求: 首先,把所有学生按总成绩SUM(GE+ ...
- 2019牛客多校第八场A All-one Matrices 悬线法,单调栈待补
All-one Matrices 题意 对于一个n,m的01矩阵,问有多少个极大矩阵. 分析 对于悬线法来说,其过程就是枚举极大矩阵的过程,那如何计数呢?对于一个点来说,若其左右边界包含了上一个点的悬 ...
- BZOJ3932 CQOI2015 任务查询系统 - 主席树,离散化
记录下自己写错的地方吧 1. 区间可能有重复 2. 没有出现的坐标也要计入version (因为询问里可能会有) #include <bits/stdc++.h> using namesp ...
- Unity3D制作3D虚拟漫游场景(二)
传送门: Unity3D制作3D虚拟漫游场景(一) -------------------------------------------------------------------------- ...
- poj1321棋盘问题(dfs+摆放问题)
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. ...
- fastadmin 框架中图片点击放大
fastadmin的原生图片预览,重新打开一个窗口太麻烦,使用layui做一个弹窗式的图片预览 1.将下面代码放在backend-init.js文件中 $('body').on('click', '[ ...
- 控制台输出Scanner和BufferedReader区别
Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一键 时,Scanner就会返回下一个输入. 当你输入的内容中间包括空格时,显然,使用Scanner就不能完整 ...
- [HDU4609] 3-idiots - 多项式乘法,FFT
题意:有\(n\)个正整数,求随机选取一个3组合,能构成三角形的概率. Solution: 很容易想到构造权值序列,对其卷积得到任取两条边(可重复)总长度为某数时的方案数序列,我们希望将它转化为两条边 ...