问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android-studio中怎么添加beanutils

发布网友 发布时间:2022-05-01 22:55

我来回答

2个回答

懂视网 时间:2022-05-02 03:17

"age", 18);

2、对象的拷贝

BeanUtils.copyProperties(newAdmin, admin);

3、map数据拷贝到javaBean中,map中的key必须要和javaBean的属性名一致。

BeanUtils.populate(adminMap, map);

4、BeanUtils对javabean中的基本数据类型是不需要做特殊处理的,但是对日期就必须转化处理了,其中有两种处理方式

(1)自定义转化器

 1 //2. 自定义日期类型转换器
 2  @Test
 3 public void test2() throws Exception {
 4  // 模拟表单数据
 5  String name = "jack";
 6  String age = "20";
 7  String birth = " ";
 8  
 9  // 对象
10  Admin admin = new Admin();
11  
12  // 注册日期类型转换器:1, 自定义的方式
13  ConvertUtils.register(new Converter() {
14  // 转换的内部实现方法,需要重写
15   @Override
16  public Object convert(Class type, Object value) {
17   
18   // 判断
19   if (type != Date.class) {
20   return null;
21   }
22   if (value == null || "".equals(value.toString().trim())) {
23   return null;
24   }
25   
26   
27   try {
28   // 字符串转换为日期
29   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
30   return sdf.parse(value.toString());
31   } catch (ParseException e) {
32   throw new RuntimeException(e);
33   }
34   }
35  },Date.class);
36  
37  
38  
39  // 把表单提交的数据,封装到对象中
40  BeanUtils.copyProperty(admin, "userName", name);
41  BeanUtils.copyProperty(admin, "age", age);
42  BeanUtils.copyProperty(admin, "birth", birth);
43  
44  //------ 测试------
45  System.out.println(admin);
46 }

(2)使用BeanUtils自己的日期转化器

 1 //2. 使用提供的日期类型转换器工具类
 2  @Test
 3 public void test3() throws Exception {
 4  // 模拟表单数据
 5  String name = "userName";
 6  String age = "20";
 7  String birth = null;
 8  
 9  // 对象
10  Admin admin = new Admin();
11  
12  // 注册日期类型转换器:2, 使用组件提供的转换器工具类
13  ConvertUtils.register(new DateLocaleConverter(), Date.class);
14   
15  // 把表单提交的数据,封装到对象中
16  BeanUtils.copyProperty(admin, "userName", name);
17  BeanUtils.copyProperty(admin, "age", age);
18  BeanUtils.copyProperty(admin, "birth", birth);
19  
20  //------ 测试------
21  System.out.println(admin);
22  }
23 }

DbUtils组件

commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。

Dbutils组件需要引入的jar文件:commons-dbutils-1.6.jar

常用API

|-- DbUtils   关闭资源、加载驱动
|-- QueryRunner   组件的核心工具类:定义了所有的与数据库操作的方法(查询、更新)
  Int  update(Connection conn, String sql, Object param);   执行更新带一个占位符的sql
  Int  update(Connection conn, String sql, Object…  param); 执行更新带多个占位符的sql
  Int[]  batch(Connection conn, String sql, Object[][] params)        批处理
  T  query(Connection conn ,String sql, ResultSetHandler<T> rsh, Object... params)   查询方法


  Int  update( String sql, Object param);  
  Int  update( String sql, Object…  param);
  Int[]  batch( String sql, Object[][] params)       
注意: 如果调用DbUtils组件的操作数据库方法,没有传入连接对象,那么在实例化QueryRunner对象的时候需要传入数据源对象: QueryRunner qr = new QueryRunner(ds);

DbUtils提供的封装结果的一些对象:
  1)BeanHandler: 查询返回单个对象
  2)BeanListHandler: 查询返回list集合,集合元素是指定的对象
  3)  ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
  4)  ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
  5)  ScalarHandler 查询返回结果记录的第一行的第一列  (在聚合函数统计的时候用)
  6)  MapHandler  查询返回结果的第一条记录封装为map

使用示例:

1、查询

技术分享
 1 public class App_query {
 2 
 3 private Connection conn;
 4 
 5 // 一、查询, 自定义结果集封装数据
 6  @Test
 7 public void testQuery() throws Exception {
 8  String sql = "select * from admin where id=?";
 9  // 获取连接
10  conn = JdbcUtil.getConnection();
11  // 创建DbUtils核心工具类对象
12  QueryRunner qr = new QueryRunner();
13  // 查询
14  Admin admin = qr.query(conn, sql, new ResultSetHandler<Admin>() {
15 
16  // 如何封装一个Admin对象
17  public Admin handle(ResultSet rs) throws SQLException {
18   if (rs.next()) {
19   Admin admin = new Admin();
20   admin.setId(rs.getInt("id"));
21   admin.setUserName(rs.getString("userName"));
22   admin.setPwd(rs.getString("pwd"));
23   return admin;
24   }
25   return null;
26   }
27 
28  }, 29);
29 
30  // 测试
31  System.out.println(admin);
32  // 关闭
33  conn.close();
34 
35  }
36 
37 // 二、查询, 使用组件提供的结果集对象封装数据
38 
39 // 1)BeanHandler: 查询返回单个对象
40  @Test
41 public void testQueryOne() throws Exception {
42  String sql = "select * from admin where id=?";
43  // 获取连接
44  conn = JdbcUtil.getConnection();
45  // 创建DbUtils核心工具类对象
46  QueryRunner qr = new QueryRunner();
47  // 查询返回单个对象
48  Admin admin = qr.query(conn, sql, new BeanHandler<Admin>(Admin.class), 29);
49  
50  System.out.println(admin);
51  conn.close();
52  }
53 
54 // 2)BeanListHandler: 查询返回list集合,集合元素是指定的对象
55  @Test
56 public void testQueryMany() throws Exception {
57  String sql = "select * from admin";
58  conn = JdbcUtil.getConnection();
59  QueryRunner qr = new QueryRunner();
60  // 查询全部数据
61  List<Admin> list = qr.query(conn, sql, new BeanListHandler<Admin>(Admin.class));
62  
63  System.out.println(list);
64  conn.close();
65  }
66  @Test
67 // 3) ArrayHandler, 查询返回结果记录的第一行,封装对对象数组, 即返回:Object[]
68 // 4) ArrayListHandler, 把查询的每一行都封装为对象数组,再添加到list集合中
69 // 5) ScalarHandler 查询返回结果记录的第一行的第一列 (在聚合函数统计的时候用)
70 // 6) MapHandler 查询返回结果的第一条记录封装为map
71 public void testArray() throws Exception {
72  String sql = "select * from admin";
73  conn = JdbcUtil.getConnection();
74  QueryRunner qr = new QueryRunner();
75  // 查询
76  //Object[] obj = qr.query(conn, sql, new ArrayHandler());
77  //List<Object[]> list = qr.query(conn, sql, new ArrayListHandler());
78  //Long num = qr.query(conn, sql, new ScalarHandler<Long>());
79  Map<String, Object> map = qr.query(conn,sql, new MapHandler());
80  
81  conn.close();
82  }
83 }
View Code

2、更新

技术分享
 1 import java.sql.Connection;
 2 
 3 import org.apache.commons.dbutils.DbUtils;
 4 import org.apache.commons.dbutils.QueryRunner;
 5 import org.junit.Test;
 6 
 7 import cn.itcast.utils.JdbcUtil;
 8 
 9 public class App_update {
10 
11 private Connection conn;
12 
13 // 1. 更新
14  @Test
15 public void testUpdate() throws Exception {
16  String sql = "delete from admin where id=?";
17  // 连接对象
18  conn = JdbcUtil.getConnection();
19 
20  // 创建DbUtils核心工具类对象
21  QueryRunner qr = new QueryRunner();
22  qr.update(conn, sql, 26);
23 
24  // 关闭
25  DbUtils.close(conn);
26  }
27 
28 // 2. 批处理
29  @Test
30 public void testBatch() throws Exception {
31  String sql = "insert into admin (userName, pwd) values(?,?)";
32  conn = JdbcUtil.getConnection();
33  QueryRunner qr = new QueryRunner();
34  // 批量删除
35  qr.batch(conn, sql, new Object[][]{ {"jack1","888"},{"jack2","999"} });
36  
37  // 关闭
38  conn.close();
39  }
40 }
View Code

 

BeanUtils&&DbUtils

标签:util   hiberna   dbutil   result   日期类   object   ...   属性   unit   

热心网友 时间:2022-05-02 00:25

如果beanutils是一个jar包,添加的步骤:

点击“app”mole,然后菜单栏“Build——>Edit flavors——>Dependences”,点击右边栏的“+”,选中“Library Dependences”,最后输入“对应的jar”,导入缺失的beanutils包,最运行项目,问题解决。。。钊林IT分享

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2017款 雪佛兰科鲁兹 手动 三厢先锋版 7.5万公里保养项目多少钱_百度知 ... 会计师是什么岗位 会计师是指什么级别 会计师属职务还是什么 08年的大众速腾车电保护瓶盖怎么拿下来 从西三旗桥东到鸟巢坐哪路公交车? 从小汤山疗养院怎么去鸟巢呀 从鸟巢到大兴区政府(海北路)怎么乘车? 从东小口坐多少路车能到鸟巢? 如何去除橡胶手套味道 怎么才能让QQ上不显示空间信息 ?? 发表的说说怎么才能不在QQ里显示 2012QQ空间怎么隐藏自己的发表的状态 如何设置QQ不显示状态 QQ空间发表的任何状态都不显示是怎么回事? 求一篇三国演义的读后感(要求600字) 怎么让黑名单里的号在他QQ空间不显示我的发表状态 用手机QQ登录空间发表状态怎么不显示 为什么在qq空间发表状态,转载日志等动态显示不出来? 一篇600字的三国演义读后感 极品飞车13无法运行 电脑怎么接网络? qq发表动态怎么不让别人看到 极品飞车13下载后无法进入游戏。 极品飞车13打不开,内存不能为read 汗蒸是先洗澡还是后洗澡 我安装了极品飞车13双击运行时没有任何反应 南京世茂璀璨滨江怎么样?好不好?值不值得买? 极品飞车13遇到问题无法玩 保定那里有什么好玩的地方? 苹果手机视频号屏蔽的好友如何恢复? 哪有《唐砖》最新章节 求《唐砖》 TXT,先谢了 求唐砖最新章节 小说发我 一五四七五 一二零五三点靠木 大家帮我推荐一下可读性强的小说吧,像商战的,官场的,历史的,等等都可以,谢谢给分 变压器的防水等级介绍? 请教:安全用电中绝缘隔离防护措施怎么能达到绝缘隔离的效果?IP3O级具体是什么意思? UPS电源的外壳防护等级是什么?一般都做多少?可以防什么? HTC 如影的防水效果怎么样?谢谢! 88事故车拍卖网正规靠谱吗?交五千定金才能拍会不会是骗子公司 想做事故车 但都有什么流程呢 怎么卖出去能赚钱啊 有什么正规的事故车拍卖网呢 怎么过户啊 事故车群-事故车交易-事故车交流-水淹车-事故车拍卖-火烧车-拆件车-这样的事故车QQ群有吗? 《大汉帝国风云》txt全集下载 领导的txt全集下载地址 什么是BeanUtils 各大城市安装的天网监控,到底属于是公安局管还是政府管理 天网和监控有区别吗? 脚是什么动物? 脚 代表着什么生肖 天网没有可以看见任何地方莫?天网是用卫星来监视的莫, 还是要有固定的监控?