MyBatis基于注解----增删改查
select sysdate from dual;
--账户表
--账户编号,账户卡号,账户密码,账户余额,账户状态,创建时间
drop table account;
create table account
(
id number(10) primary key,
account_number varchar2(50) not null,
account_pwd varchar2(10) not null,
account_money number(10,2) not null,
account_status number(5) check(account_status in(0,1)),
creation_time date default sysdate
); --创建序列
drop sequence seq_account;
create sequence seq_account; --添加数据
insert into account(
id,account_number,account_pwd,
account_money,account_status,creation_time
)
values
(seq_account.nextval,'6402211990052633201','123',
10.00,1,to_date('2010-08-09 12:12:12','yyyy-MM-dd hh24:mi:ss')); insert into account(
id,account_number,account_pwd,
account_money,account_status,creation_time
)
values
(seq_account.nextval,'6402211990052633202','123',
20.00,1,to_date('2010-08-10 12:12:12','yyyy-MM-dd hh24:mi:ss')); insert into account(
id,account_number,account_pwd,
account_money,account_status,creation_time
)
values
(seq_account.nextval,'6402211990052633203','123',
30.00,1,to_date('2010-08-11 12:12:12','yyyy-MM-dd hh24:mi:ss')); insert into account(
id,account_number,account_pwd,
account_money,account_status,creation_time
)
values
(seq_account.nextval,'6402211990052633204','123',
40.00,1,to_date('2010-08-12 12:12:12','yyyy-MM-dd hh24:mi:ss')); insert into account(
id,account_number,account_pwd,
account_money,account_status,creation_time
)
values
(seq_account.nextval,'6402211990052633205','123',
50.00,1,to_date('2010-08-13 12:12:12','yyyy-MM-dd hh24:mi:ss')); insert into account(
id,account_number,account_pwd,
account_money,account_status,creation_time
)
values
(seq_account.nextval,'6402211990052633206','123',
60.00,1,to_date('2010-08-14 12:12:12','yyyy-MM-dd hh24:mi:ss')); insert into account(
id,account_number,account_pwd,
account_money,account_status,creation_time
)
values
(seq_account.nextval,'6402211990052633207','123',
70.00,1,to_date('2010-08-15 12:12:12','yyyy-MM-dd hh24:mi:ss')); select * from (select rownum r,a.* from account a where rownum<=6)t where t.r>3 select * from (select rownum r,a.* from account a where rownum<=#{endrow})t where t.r>#{startrow} insert into account(id,account_number,account_pwd,account_money,account_status,creation_time) values(seq_account.nextval,#{account_number},#{account_pwd},#{account_money},#{account_status},#{creation_time}); update account set account_number=#{account_number},account_pwd=#{account_pwd},account_money=#{account_money},account_status=#{account_status},creation_time=#{creation_time} where id=#{id}
3.在com.pojo包下创建Account.java类
public class Account {
private Integer id ;
private String account_number ;
private String account_pwd ;
private Double account_money ;
private Integer account_status ;
private Date creation_time ; public Account() {
super();
} public Account(String accountNumber, String accountPwd,
Double accountMoney, Integer accountStatus, Date creationTime) {
account_number = accountNumber;
account_pwd = accountPwd;
account_money = accountMoney;
account_status = accountStatus;
creation_time = creationTime;
} public Account(Integer id, String accountNumber, String accountPwd,
Double accountMoney, Integer accountStatus, Date creationTime) {
super();
this.id = id;
account_number = accountNumber;
account_pwd = accountPwd;
account_money = accountMoney;
account_status = accountStatus;
creation_time = creationTime;
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getAccount_number() {
return account_number;
} public void setAccount_number(String accountNumber) {
account_number = accountNumber;
} public String getAccount_pwd() {
return account_pwd;
} public void setAccount_pwd(String accountPwd) {
account_pwd = accountPwd;
} public Double getAccount_money() {
return account_money;
} public void setAccount_money(Double accountMoney) {
account_money = accountMoney;
} public Integer getAccount_status() {
return account_status;
} public void setAccount_status(Integer accountStatus) {
account_status = accountStatus;
} public Date getCreation_time() {
return creation_time;
} public void setCreation_time(Date creationTime) {
creation_time = creationTime;
} @Override
public String toString() {
return "Account [account_money=" + account_money + ", account_number="
+ account_number + ", account_pwd=" + account_pwd
+ ", account_status=" + account_status + ", creation_time="
+ creation_time + ", id=" + id + "]";
} }
4.在com.page包下创建分页工具类PageUtil.java
public class PageUtil {
private Integer pageno; //当前页
private Integer pagesize; //页面大小
private Integer totalcount; //同条数
private Integer totalpage; //同页数
private Integer startrow; //起始行
private Integer endrow; //结束行 public PageUtil() {
} /**
* 普通分页
* @param pageno
* @param pagesize
* @param totalcount
*/
public PageUtil(Integer pageno, Integer pagesize, Integer totalcount) {
this.pageno = pageno;
this.pagesize = pagesize;
this.startrow=(pageno-1)*pagesize;
this.endrow=pageno*pagesize;
this.totalcount = totalcount;
this.setTotalpage(totalcount, pagesize);
} public Integer getPageno() {
return pageno;
} public void setPageno(Integer pageno) {
this.pageno = pageno;
} public Integer getPagesize() {
return pagesize;
} public void setPagesize(Integer pagesize) {
this.pagesize = pagesize;
} public Integer getTotalcount() {
return totalcount;
} public void setTotalcount(Integer totalcount) {
this.totalcount = totalcount;
} public Integer getTotalpage() {
return totalpage;
}
/**
* 设置总页数
* @param totalcount
* @param pagesize
*/
public void setTotalpage(Integer totalcount,Integer pagesize) { this.totalpage = totalcount%pagesize==0?totalcount/pagesize:totalcount/pagesize+1;
} public Integer getStartrow() {
return startrow;
} public void setStartrow(Integer startrow) {
this.startrow = startrow;
} public Integer getEndrow() {
return endrow;
} public void setEndrow(Integer endrow) {
this.endrow = endrow;
} }
5.在com.mapper包下创建数据访问层映射接口AccountMapper.java
public interface AccountMapper {
/**
* 1.分页查询
* @param pageutil
* @return
*/
@Select("select * from (select rownum r,a.* from account a where rownum<=#{endrow})t where t.r>#{startrow}")
List<Account> finaAll(PageUtil pageutil);
/**
* 2.根据id查询
* @param id
* @return
*/
@Select("select * from account where id=#{id}")
Account findById(Integer id);
/**\
* 3.保存账户对象
* @param account
* @return
*/
@Insert("insert into account(id,account_number,account_pwd,account_money,account_status,creation_time) values(seq_account.nextval,#{account_number},#{account_pwd},#{account_money},#{account_status},#{creation_time})")
Integer saveAccount(Account account);
/**\
* 4.修改对象
* @param account
* @return
*/
@Update("update account set account_number=#{account_number},account_pwd=#{account_pwd},account_money=#{account_money},account_status=#{account_status},creation_time=#{creation_time} where id=#{id}")
Integer updateAccount(Account account);
/**
* 5.根据id删除
* @param id
* @return
*/
@Delete("delete from account where id=#{id}")
Integer deleteById(Integer id); }
6.在src下创建数据库属性文件jdbc.properties
driver=oracle.jdbc.driver.OracleDriver
url=jdbc\:oracle\:thin\:@127.0.0.1\:1521\:orcl
username=****
password=****
7.在src下创建主配置文件mybatis-config.xml
<configuration>
<properties resource="jdbc.properties"/> <environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments> <mappers>
<mapper class="com.mapper.AccountMapper"/>
</mappers>
</configuration>
8.在com.util包下创建获取SqlSession工具类MyBatisUtil.java
public class MyBatisUtil {
private static SqlSessionFactory sqlSessionFactory=null;
static{
try {
Reader reader=Resources.getResourceAsReader("mybatis-config.xml");
sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
} catch (IOException e) {
e.printStackTrace();
System.out.println("解析xml文件或创建工厂出错!");
}
}
/**
* 获取SqlSession对象
* @param isCommit
* @return
*/
public static SqlSession getSqlSession(boolean isCommit){
return sqlSessionFactory.openSession(isCommit);
} }
9.在com.mapper包下创建数据访问层映射接口实现类AccountMapperImpl.java
public class AccountMapperImpl implements AccountMapper {
private SqlSession sqlSession=MyBatisUtil.getSqlSession(true);
private AccountMapper mapper=sqlSession.getMapper(AccountMapper.class); public Integer deleteById(Integer id) {
return mapper.deleteById(id);
} public List<Account> finaAll(PageUtil pageutil) {
return mapper.finaAll(pageutil);
} public Account findById(Integer id) {
return mapper.findById(id);
} public Integer saveAccount(Account account) {
return mapper.saveAccount(account);
} public Integer updateAccount(Account account) {
return mapper.updateAccount(account);
} public SqlSession getSqlSession() {
return sqlSession;
} public void setSqlSession(SqlSession sqlSession) {
this.sqlSession = sqlSession;
} public AccountMapper getMapper() {
return mapper;
} public void setMapper(AccountMapper mapper) {
this.mapper = mapper;
} }
10.在com.test包下创建测试类Test.java
public class Test {
public static void main(String[] args) {
AccountMapper mapper=new AccountMapperImpl();
System.out.println("---------------1.分页查询前三条:------------------");
List<Account> list=mapper.finaAll(new PageUtil(1, 3, 7));
for (Account account : list) {
System.out.println(account);
} System.out.println("---------------1.根据id查询第5条:------------------");
Account account=mapper.findById(5);
System.out.println(account);
} }
MyBatis基于注解----增删改查的更多相关文章
- MyBatis -- 对表进行增删改查(基于注解的实现)
1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1 首先须要定义映射sql的 ...
- MyBatis简单的增删改查以及简单的分页查询实现
MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...
- Mybatis入门之增删改查
Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- 基于SSM之Mybatis接口实现增删改查(CRUD)功能
国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...
- mybatis中的增删改查操作
在这一个部分,主要进行增删改查的示例书写. 增删改查可以基于xml的,也可以基于注解的方式. 一:对单条数据的查询 1.目录结构 这个使得目录更加清晰 2.User.java 这个使用以前的user表 ...
- SpringMVC,MyBatis商品的增删改查
一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...
- SpringBoot2+Druid+MyBatis+MySql实现增删改查
1.配置pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- Mybatis的简单增删改查
刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...
随机推荐
- Apache Phoenix的序列
序列作为标准SQL特性,允许生成递增的序列并应用在典型的ID中.为了创建一个序列,可以使用: 0:jdbc:phoenix:SZB-L0023780:2181:/hbase114> CREATE ...
- BZOJ3241/UOJ125 [Noi2013]书法家
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- Avoid nesting too deeply and return early避免嵌套太深应尽早返回
当某个变量与多个值进行比较的时候 不要用多个if else 判断是否相等 将多个值放在数组里,然后用PHP函数in_array(mixed $needle,array $haystack),检查数组$ ...
- selenium+python3 鼠标事件
1.鼠标右击 ActionChains(driver).contest_click(right_click).perform() 2.鼠标悬停 ActionChains(driver).move_to ...
- js:for循环ul/li,获取当前被点击元素的id,以及给其他li设置属性
js:for循环ul/li,获取当前被点击元素的id,以及给其他li设置属性 <!doctype html> <html> <head> <meta char ...
- 2017-03-01 Oracle10g的安装与配置使用
今天项目中又用到了Oracle,时隔三年没有碰过Oracle,之前在做某城市公共自行车管理系统时使用的是Orace10g版本,Oracle给我最大的感觉就是安装上以后,电脑就会变得很卡,所以大家当不使 ...
- 184. Department Highest Salary
问题描述 解决方案 select b.Name Department,a.Name Employee,a.Salary from ( select e1.Salary,e1.Name,e1.Depar ...
- 程序员怎样迈出从5K到1W的重要一步
为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝:而自己加班加点搞到天亮还做不完. 为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置:而自己将代码改了又改,删了又建,几乎晕 ...
- SpringBoot使用devtools导致的类型转换异常
遇到的问题:SpringBoot项目中的热部署引发的血的教训,报错代码位置: XStream xStream1 = new XStream(); xStream1.autodetectAnnotati ...
- s3cmd 安装使用指南
https://wangyan.org/blog/s3cmd-how-to-use.html s3cmd 安装使用指南 s3cmd 是一款 Amazon S3 命令行工具.它不仅能上传.下载.同步,还 ...