Mybatis实现数据的增删改查
Mybatis实现数据的增删改查
1、项目结构(使用maven创建项目)

2、App.java
package com.GetcharZp.MyBatisStudy; import java.io.IOException;
import java.io.InputStream;
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.GetcharZp.MyBatisStudy.dao.TradeDao;
import com.GetcharZp.MyBatisStudy.model.Trade; /**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
InputStream config = null;
try {
config = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(config);
SqlSession session = factory.openSession();
TradeDao tradeDao = session.getMapper(TradeDao.class); /*删除*/
tradeDao.deleteTrade(3);
session.commit(); // 删除要提交 /*查询*/
List<Trade> tradeList = tradeDao.selectTrade();
System.out.println(tradeList);
System.out.println(tradeList.size());
Trade trade = tradeDao.findById(2);
System.out.println(trade); // 日志里面有输出,但结果没有 /*插入*/
Trade InsertTrade = new Trade();
InsertTrade.setTradeId(4);
InsertTrade.setTradeName("毛笔");
InsertTrade.setTradePrice(5.6);
tradeDao.insertTrade(InsertTrade);
session.commit(); /*更新*/
Trade updateTrade1 = new Trade();
updateTrade1.setTradeName("watch");
updateTrade1.setTradePrice(520.1314);
tradeDao.updateTrade(3);
session.commit(); session.close(); } catch (IOException e) {
e.printStackTrace();
} finally {
if (config != null)
try {
config.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
3、TradeDao
package com.GetcharZp.MyBatisStudy.dao;
import java.util.List;
import com.GetcharZp.MyBatisStudy.model.Trade;
public interface TradeDao { // interface 接口
public List<Trade> selectTrade();
public void deleteTrade(int tradeId);
public void updateTrade(int tradeId);
public void insertTrade(Trade newTrade);
public Trade findById(int tradeId);
}
4、Trade
package com.GetcharZp.MyBatisStudy.model;
public class Trade {
private Integer tradeId;
private String tradeName;
private Double tradePrice;
public Integer getTradeId() {
return tradeId;
}
public void setTradeId(Integer tradeId) {
this.tradeId = tradeId;
}
public String getTradeName() {
return tradeName;
}
public void setTradeName(String tradeName) {
this.tradeName = tradeName;
}
public Double getTradePrice() {
return tradePrice;
}
public void setTradePrice(Double tradePrice) {
this.tradePrice = tradePrice;
}
@Override
public String toString() {
return "Trade [tradeId=" + tradeId + ", tradeName=" + tradeName + ", tradePrice=" + tradePrice + "]";
}
}
5、TradeMapper
<?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.GetcharZp.MyBatisStudy.dao.TradeDao">
<select id="selectTrade" resultType="com.GetcharZp.MyBatisStudy.model.Trade">
select * from trade
</select>
<select id="findById" resultType="com.GetcharZp.MyBatisStudy.model.Trade">
select * from trade where trade_id=#{tradeId}
</select>
<delete id="deleteTrade">
delete from trade where trade_id = #{tradeId}
</delete>
<insert id="insertTrade">
insert into trade (trade_id, trade_name, trade_price)
values(#{tradeId}, #{tradeName}, #{tradePrice})
</insert>
<update id="updateTrade">
update trade set
trade_name = #{tradeName},
trade_price = #{tradePrice}
where
trade_id = #{tradeId}
</update>
</mapper>
6、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>
<settings>
<!-- <setting name="logImpl" value="STDOUT_LOGGING" /> -->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<typeAliases>
<package name="com.GetcharZp.MyBatisStudy.model"/>
</typeAliases>
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/suse"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mappers/TradeMapper.xml"/>
</mappers>
</configuration>
7、pom.xml:
<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.GetcharZp.MyBatisStudy</groupId>
<artifactId>Mybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging> <name>Mybatis</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
</project>
Mybatis实现数据的增删改查的更多相关文章
- mybatis ---- 实现数据的增删改查
前面介绍了接口方式的编程,需要注意的是:在book.xml文件中,<mapper namespace="com.mybatis.dao.IBookDao"> ,命名空间 ...
- Mybatis实现数据的增删改查(CRUD)
什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBat ...
- 转!!!Mybatis实现数据的增删改查(CRUD)
什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBat ...
- Mybatis框架基于注解的方式,实对数据现增删改查
编写Mybatis代码,与spring不一样,不需要导入插件,只需导入架包即可: 在lib下 导入mybatis架包:mybatis-3.1.1.jarmysql驱动架包:mysql-connecto ...
- Mybatis学习总结(二)—使用接口实现数据的增删改查
在这一篇中,让我们使用接口来实现一个用户数据的增删改查. 完成后的项目结构如下图所示: 在这里,person代表了一个用户的实体类.在该类中,描述了相关的信息,包括id.name.age.id_num ...
- MyBatis学习系列二——增删改查
目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...
- dbutils中实现数据的增删改查的方法,反射常用的方法,绝对路径的写法(杂记)
jsp的三个指令为:page,include,taglib... 建立一个jsp文件,建立起绝对路径,使用时,其他jsp文件导入即可 导入方法:<%@ include file="/c ...
- MVC模式:实现数据库中数据的增删改查功能
*.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...
- Hibernate3回顾-5-简单介绍Hibernate session对数据的增删改查
5. Hibernate对数据的增删改查 5.1Hibernate加载数据 两种:get().load() 一. Session.get(Class arg0, Serializable arg1)方 ...
随机推荐
- openssl之DH(Diffie–Hellman)加密
//加密机制初始化 g_HDMgr.init(); //对方的public key BIGNUM* peerPubKey = NULL; peerPubKey = BN_bin2bn((unsigne ...
- 记一次EF Core DBContext在Action委托中GC异常的问题.
今天在开发过程中发现.在SaveChanges的时候偶尔会抛出异常:Cannot access a disposed object. A common cause of this error is d ...
- Spring Boot入门(一):搭建Spring Boot项目
从本篇博客开始,我们开始进入Spring Boot的世界,它的出现使Spring的开发变得更加简洁,因此一经推出受到众多程序员的喜爱. 作为Spring Boot系列的第一篇博客,我们先来讲解下如何搭 ...
- vue MD5 加密
确保vue项目中有MD5的依赖,当然没有的可以安装crypto模块. npm安装: npm install --save crypto 在main.js文件中将md5引入,可以全局使用的 import ...
- WPF实现放大镜
这是一个之前遗留的问题.wpf里面有很多很多的东西,我以前用的真的只是其中很小的一个角落都不到. 需求背景:图片来源于相机拍摄,由于对像素要求,拍出来的图像素比较高,原图尺寸为30722048,以目前 ...
- Python 命令行之旅:使用 docopt 实现 git 命令
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...
- nuxt.js部署vue应用到服务端过程
由于seo的需要,最近将项目移植道nuxt.js下采用ssr渲染 移植完成后,一路顺畅,但是到了要部署到服务器端上时候,还是个头疼的问题,但最终还是顺利完成.现在记录一下部署中的过程. 注:部署时候过 ...
- 加上cdn后字体跨域
@font-face是CSS3中的一个特性,可以把自己定义的Web字体嵌入到网页中,随着@font-face,越来越多的网页采用字体图标作为网页中的小图形. 比如Bootstrap就采用了Glyphi ...
- 配置Docker镜像加速
1.在docker toolbox执行下面的命令进入VM bash docker-machine ssh default 2.执行下面的命令修改profile文件: sudo vi /var/lib/ ...
- Node配合WebSocket做多文件下载以及进度回传
起因 为什么做这个东西,是突然间听一后端同事说起Annie这个东西,发现这个东西下载视频挺方便的,会自动爬取网页中的视频,然后整理成列表.发现用命令执行之后是下面的样子: 心里琢磨了下,整一个界面玩一 ...