问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

用java如何制作一个检索数据库的小软件,可以帮我完成修改,查询,删除数据...

发布网友 发布时间:2022-04-22 22:52

我来回答

7个回答

懂视网 时间:2022-05-01 01:14

java.sql.SQLException; import java.util.List; import java.util.Map; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.apache.commons.dbutils.handlers.BeanListHandler; import org.apache.commons.dbutils.handlers.MapHandler; import org.apache.commons.dbutils.handlers.MapListHandler; import org.apache.commons.dbutils.handlers.ScalarHandler; import org.junit.Test; import cn.itcast.commons.CommonUtils; import cn.itcast.jdbc.JdbcUtils; import cn.itcast.jdbc.TxQueryRunner; /** * TxQueryRunner它是QueryRunner的子类!(commons-dbutils.jar) * 可用起来与QueryRunner相似的! * 我们的类支持事务!它底层使用了JdbcUtils来获取连接! * * 简化jdbc的操作 * QueryRunner的三个方法: * * update() --> insert、update、delete * * query() --> select * * batch() --> 批处理 * @author qdmmy6 * */ public class TxQueryRunnerTest { /** * 测试update()方法,用来执行insert、update、delete语句 * @throws SQLException */ @Test public void testUpdate() throws SQLException { String sql = "insert into t_person(pid,pname,age,sex) values(?,?,?,?)"; Object[] params = {"1", "p1", 1, "男"};//给sql中对应的参数 QueryRunner qr = new TxQueryRunner();//我们没有给对象提供连接池 qr.update(sql, params);//执行sql,也不提供连接,它内部会使用JdbcUtils来获取连接 } /** * 使用事务 * @throws SQLException */ @Test public void testUpdate2() throws Exception { try { JdbcUtils.beginTransaction();//开启事务 String sql = "insert into t_person(pid,pname,age,sex) values(?,?,?,?)"; QueryRunner qr = new TxQueryRunner(); Object[] params = {"2", "p2", 2, "女"}; qr.update(sql, params);//执行 if(false) { throw new Exception(); } params = new Object[]{"3", "p3", 3, "女"}; qr.update(sql, params);//执行 JdbcUtils.commitTransaction();//提交事务 } catch(Exception e) { try { JdbcUtils.rollbackTransaction();//回滚事务 } catch (SQLException e1) { } throw e; } } /** * 测试查询方法 * 我们知道JDBC查询的结果的是ResultSet * 而QueryRunner查询的结果是通过ResultSet映射后的数据。 * * QueryRunner第一步是执行select,得到ResultSet * * 把ResultSet转换成其他类型的! * 通过转换结果: *    * javaBean:把结果集封装到javaBean中 * * Map:把结果集封装到Map中 * * 把结果集封装到Object中(结果集是单行单列) * @throws SQLException * * */ /* * 单行结果集映射到javaBean中 */ @Test public void testQuery1() throws SQLException { String sql = "select * from t_person where pid=?"; QueryRunner qr = new TxQueryRunner(); /* * 第二个参数类型为ResultSetHandler,它是一个接口,表示映射的结果类型。 * * BeanHandler --> 它是ResultSetHandler的实现类,它的作用是把结果集封装到Person对象中 */ Person p = qr.query(sql, new BeanHandler<Person>(Person.class), "1"); System.out.println(p); } /** * 使用BeanListHandler * 把多行结果集映射到List<Bean>,即多个JavaBean对象。 * 一行结果集记录对应一个javaBean对象,多行就对应List<Bean> * @throws SQLException */ @Test public void testQuery2() throws SQLException { String sql = "select * from t_person"; QueryRunner qr = new TxQueryRunner(); /* * 第二个参数类型为ResultSetHandler,它是一个接口,表示映射的结果类型。 * * BeanListHandler --> 它是ResultSetHandler的实现类, * 它的作用是把结果集封装到List<Person>对象中 */ List<Person> list = qr.query(sql, new BeanListHandler<Person>(Person.class)); System.out.println(list); } /** * 使用MapHandler,把单行结果集封装到Map对象中 * @throws SQLException */ @Test public void testQuery3() throws SQLException { String sql = "select * from t_person where pid=?"; QueryRunner qr = new TxQueryRunner(); /* * 第二个参数类型为ResultSetHandler,它是一个接口,表示映射的结果类型。 * * BeanListHandler --> 它是ResultSetHandler的实现类, * 它的作用是把结果集封装到List<Person>对象中 */ Map<String, Object> map = qr.query(sql, new MapHandler(), "1"); System.out.println(map); } /** * 使用MapListHandler,把多行结果集封装到List<Map>中,即多个Map * 一行对应一个Map,多行对应List<Map> * @throws SQLException */ @Test public void testQuery4() throws SQLException { String sql = "select * from t_person"; QueryRunner qr = new TxQueryRunner(); /* * 第二个参数类型为ResultSetHandler,它是一个接口,表示映射的结果类型。 * * BeanListHandler --> 它是ResultSetHandler的实现类, * 它的作用是把结果集封装到List<Person>对象中 */ List<Map<String, Object>> mapList = qr.query(sql, new MapListHandler()); System.out.println(mapList); } /** * 使用ScalarHandler,把单行单列的结果集封装到Object中 * @throws SQLException */ @Test public void testQuery5() throws SQLException { String sql = "select count(*) from t_person";//结果集是单行单列的 QueryRunner qr = new TxQueryRunner(); Object obj = qr.query(sql, new ScalarHandler()); /* * 我们知道select count(1),结果一定是个整数! * > Integer * > Long * > BigInteger * * 不同的驱动,结果不同! * 无论是哪种类型,它都是Number类型!强转成Number一定不出错 */ Number number = (Number)obj; long cnt = number.longValue(); System.out.println(cnt); } /** * 一行结果集中包含了两张表的列 * 使用MapHandler来处理 * 1. 把结果集封装到map中 * 2. 使用map生成Person对象 * 3. 使用map生成address对象 * 4. 把两个实体对象建立关系 * @throws SQLException */ @Test public void testQuery6() throws SQLException { String sql = "SELECT * FROM t_person p, t_address a WHERE p.aid=a.aid AND p.pid=?"; QueryRunner qr = new TxQueryRunner(); /* * 1. 得到Map */ Map map = qr.query(sql, new MapHandler(), "aaa"); /* * 2. 把Map中部分数据封装到Person中 */ Person p = CommonUtils.toBean(map, Person.class); /* * 3. 把Map中部分数据封装到Address中 */ Address addr = CommonUtils.toBean(map, Address.class); /* * 4. 建立两个实体的关系 */ p.setAddress(addr); System.out.println(p); } }

 

java操作数据库增删改查的小工具--TxQueryRunner

标签:

热心网友 时间:2022-04-30 22:22

简单的直接用swing开发就可以了,只要你机器有java环境
后台用jdbc,把数据库的连接帐号密码写成全局的可配的,放在配置文件里也可以
再做相关表的增删改查窗口就可以了

热心网友 时间:2022-04-30 23:40

其实无非就是 建立链接,获得链接对象,然后创建statement,然后执行sql操作
建立链接就用jdbc链接,网上一搜就有现成的连接串,不过首先要确定你是什么数据库,不同的数据库,连接驱动不一样,连接串也不一样。

热心网友 时间:2022-05-01 01:15

1,使用hibernate等对象关系映射框架,很简单。
2,编写JDBC代码。
推荐你使用hibernate,都是封装好的jdbc,拿来用即可。

热心网友 时间:2022-05-01 03:06

写下查询 不就可以了

热心网友 时间:2022-05-01 05:14

这个比较复杂,我是要给你代码吗?来自:求助得到的回答

热心网友 时间:2022-05-01 07:39

我给, hi联系,email? Q?追问wlovehong@qq.com,谢谢

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
苏教版五年级下册语文第11课郑和远航的多音字,至少四个 贝蒂纳火鸡简介 毕在日本代表的是哪个姓氏? 格力风管机开机风机和压缩机都会工作但只能制热不能制冷是什么原因 关于考研报考点的选择,我户口在德州的一个县城,考研报考点,我是选 附随义务的种类具体包括什么?应该怎样适用呢? 债的附随义务的种类有哪些 冰碛湖和冰蚀湖的区别 试驾瑞虎7PLUS:瑕不掩瑜,产品力对得起它的价格 【刮痧疗法】刮痧的好处和坏处 刮痧后能洗澡吗 感冒刮痧有用吗 我要用户PHP和数据库做一个成绩查询系统。请问我应该怎么做啊?不要太... 我想做一个数据库,需要什么软件啊?? 自己做一个数据库软件需要那些步骤? 如何划分音节? 英语中音节和读音重轻区域区别 请教英语的单词音节的问题 这样才能知道什么是开音节和什么是闭音节啊,还有重读音 英语音节及音节划分规则 音节的划分 什么是闭音节,什么是重读闭音节,能说详细点吗?还有一个单词的音节是怎么划分的?详细点,感谢! 音节是怎样划分?根据是什么? 音节的划分法则 英语单词怎么划分重音和轻音? 怎样给英语单词划分音节和标注重音? 什么是重读音、闭音节、开音节? 英语的重读开音节 重读闭音节 音节的划分 英语中音节是按什么进行划分的 音节到底是怎么划分的呢? 音节怎么划分? 音节怎么划分 英语单词发音(音节划分以及重读非重读) 记账凭证怎么取消记账 如何用ACCESS做个数据库查询系统? 如何在填制凭证的界面给凭证取消记账 想做一个简单的查询系统,用什么做? 用友中怎么取消记账啊? 做一个数据库查询软件,用什么做比较好 T3凭证怎么取消记账 C# 写一个数据库查询功能的软件,求大神给思路 怎么在局域网开发一个数据库查询系统 用友标准版 怎么取消记账? 求助,最近在写一个数据库查询的小软件,代码如下 用友软件怎么取消记账? 用友T+12.1如何取消记账 怎么做一个查询数据库 想开发一个小的数据库软件,从excel中读取很多商品每月的销量,然后可以选择性的查询 用友T+软件,怎么删除已记账的凭证? 用VB做个简单的查询数据库软件,在线等 如何制作一个带查询搜索界面的数据库软件 用友T+12.1取消记账的操作方法? 我想用VB做一个查询软件
  • 焦点

最新推荐

猜你喜欢

热门推荐