- 浏览: 150005 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
qiuxue126com:
学习了 !
nodejs http 发送请求 -
ZZX19880809:
一笑而过就好了,反正我不赶铁路
铁道部那坑爹的系统。
话不多说,直接上代码。两代关于JDBC的代码,结果集到类对象的赋值。可直接使用于项目中。
作用:避免于大量的Setter/Getter的使用。
结果集到单一对象,一般用于查询单行记录时使用。
public static <T> T toOneRowObject(ResultSet rs, Class<T> beanClass) throws Exception { T bean = null; ResultSetMetaData metaData = rs.getMetaData(); if (rs.next()) { bean = beanClass.newInstance(); int count = metaData.getColumnCount(); Object columnValue = ""; for (int idx = 1; idx <= count; idx++) { columnValue = rs.getObject(idx); switch(metaData.getColumnType(idx)){ case Types.TIMESTAMP: case Types.TIME: case Types.DATE: columnValue = String.valueOf(rs.getObject(idx)); break; case Types.BIGINT: columnValue = rs.getInt(idx); break; } PropertyUtils.setProperty(bean, metaData.getColumnLabel(idx), columnValue); } } return bean; }
结果集到多对象,使用于查询多行记录集。
public static <T> Vector<T> toMultiRowObject(ResultSet rs,Class<T> beanClass) throws Exception{ Vector<T> vc = new Vector<T>(); ResultSetMetaData metaData = rs.getMetaData(); int count = metaData.getColumnCount(); T bean = null; Object columnValue = ""; try{ while(rs.next()){ bean = beanClass.newInstance(); for(int idx = 1;idx <= count;idx++){ columnValue = rs.getObject(idx); switch(metaData.getColumnType(idx)){ case Types.TIMESTAMP: case Types.TIME: case Types.DATE: columnValue = String.valueOf(rs.getObject(idx)); break; case Types.BIGINT: columnValue = rs.getInt(idx); break; } PropertyUtils.setProperty(bean, metaData.getColumnLabel(idx), columnValue); } vc.add(bean); } }catch(Exception e){ throw new Exception("column value : " + columnValue, e); } return vc; }
Demo清单:
Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(DBURL,DBUSER,DBPWD); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * From t_user"); Vector vc = DBHelper.toMultiRowObject(rs, UserBean.class); } catch (Exception e) { log.error(sql.toString(), e); e.printStackTrace(); } finally { conn.close(); }
发表评论
-
Lua
2015-05-20 17:06 0local function bin2hex(s) ... -
1111111
2014-12-23 15:13 0mysql> CHANGE MASTER TO MA ... -
111
2014-12-15 18:36 0#!/bin/bash if [ `uname -m ... -
Web_Quartz XML配置
2014-04-11 17:32 850classpath目录下:生成quartz.propertie ... -
Ant使用
2014-04-11 17:26 656<?xml version="1.0& ... -
(转)nodejs和java中的des/3des加密解密
2014-04-04 15:23 11552Java和nodejs中des加解密数据互操作,直接上代码(仅 ... -
MySQL 创建用户、授权
2014-01-03 22:44 672一, 创建用户: 命令: CREATE USE ... -
mysql中文乱码
2014-01-03 22:42 590php MySQL中文乱码问题: 处理方法:set name ... -
mysql主从同步
2014-01-03 22:34 1349结构: 100 | 101 -- 102 ... -
(转)MySQL增加用户
2013-12-25 14:25 636创建用户: 命令: CREATE USER 'username ... -
Ubuntu设置JAVA环境变量
2013-12-25 14:11 1097ubuntu 设置java的环境变量 如果为所有用户的 sh ... -
Ubuntu 程序“javac”已包含在下列软件包中
2013-07-12 16:45 9767xusongqin@xusongqin-F83VF: ... -
(转)23种设计模式的记忆方法
2013-06-18 15:48 1164首先列出23种设计模式1 Singleton 单件2 Abs ... -
(转载)MySQL 列类型
2013-05-20 16:00 697MySQL支持大量的列类型,它可以被分为3类:数字类型、日 ... -
Quartz时间配置
2013-05-07 11:39 662Seconds YES 0-59 , - * / ... -
JSP处理回车(\n)的处理
2013-04-02 11:51 4762在JSP里,JSTL(fn:replace)无法处理,回车(\ ... -
Js弹出层
2012-11-19 16:59 0弹出层:自创,虽说代码写得不好,可是自己精心布局. va ... -
MySQL远程连接
2012-11-02 09:10 0MySQL远程连接问题: 新建用户: CREATE TABL ... -
resin,tomcat,weblogic各种调试配置
2012-10-16 17:53 1178很多时候,由于代码逻辑复杂,没有调试实在是很难受。肉眼的努力还 ... -
铁道部那坑爹的系统。
2012-09-27 16:40 1379铁道部那坑爹的系统,原来也是用开源框架的。无非也就是strus ...
相关推荐
这些实体类代表了数据库中的表,它们包含了字段(对应表的列)和基本的 getter/setter 方法。而 XML 映射文件则定义了 SQL 查询、插入、更新和删除语句,以及如何将这些 SQL 语句与实体类关联。 MyBatis 是一个优秀...
在`pom.xml`文件中,除了SpringBoot的核心依赖如`spring-boot-starter-web`、测试依赖`spring-boot-starter-test`和MySQL驱动外,还需要引入Lombok以简化对象的getter和setter方法。具体依赖如下: ```xml <!-- ...
在Java开发中,MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。而Mybatis Generator Core则是MyBatis的一个辅助工具,通过简单的...
// getter 和 setter 省略 } ``` - Mapper接口`UserMapper.java`: ```java public interface UserMapper { User selectUser(Long id); // 其他方法 } ``` - Mapper XML文件`UserMapper.xml`: ```xml...
// Getter和Setter方法 // ... } ``` - **User.hbm.xml**:Hibernate映射文件,用于定义对象和表之间的映射关系。 ```xml <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//...
在这些类中,我们不仅需要实现属性的getter和setter方法,还要编写测试类来验证各个类的功能。 在实验的另一个部分,我们创建了`Monkey`和`People`类,`Monkey`类有一个`speak`方法,而`People`类继承自`Monkey`并...
Java Bean遵循一定的命名和设计规范,具备属性、getter/setter方法以及构造函数。在这个场景下,Bean可能会有如下的属性: 1. **username**:数据库用户名。 2. **password**:数据库密码。 3. **url**:数据库连接...
// getter 和 setter 方法 } ``` 现在,你可以在服务类中通过 `@Autowired` 注解注入 Mapper 实例,然后调用其方法进行数据库操作: ```java @Service public class UserService { @Autowired private ...
4. **Lombok**: Lombok是一个Java库,能通过注解自动处理getter、setter、构造器等常见冗余代码,提高代码的简洁性和可读性。例如,使用`@Data`注解可以为类自动生成所有必需的getter和setter。 5. **MySQL**: ...
// 其他属性、getter和setter方法 } ``` 在Mapper接口中,我们可以定义一些基本的CRUD方法,MyBatisPlus会自动提供实现: ```java public interface UserMapper extends BaseMapper<User> { // 自定义方法,如:...
- 参数和结果自动映射:Mybatis可以自动将Java对象映射到SQL的参数和结果集中,无需手动编写getter/setter方法。 - 缓存机制:Mybatis内置了本地缓存和二级缓存,可提高数据访问速度。 - 自动事务管理:Mybatis...
实体类通常会使用getter和setter方法,方便其他层进行数据操作。 综上所述,"java-supermarket.zip"提供的网上购物商城系统,利用MVC架构和Spring+MyBatis技术栈,实现了高效、灵活的电商应用。从设计到实现,这个...
实体类将包含字段和getter/setter方法,DAO接口将包含如`selectByPrimaryKey`、`insert`等方法,而Mapper XML文件则包含了与这些方法对应的SQL语句。 使用MyBatis Generator不仅可以节省大量编码时间,还可以确保...
例如,如果有一个名为`User`的表,我们可以创建一个`User`类,包含与表字段相对应的属性和getter/setter方法。 ```java public class User { private Long id; private String name; private String email; ...
- 创建`LoginAction.java`类,用于处理登录请求并调用相应的服务层方法。 ```java public class LoginAction extends ActionSupport { private User user = new User(); private UserService userService; ...
DAO类是模型层与数据库之间的一个抽象层,它封装了JDBC(Java Database Connectivity)操作,提供更新和查询数据的接口。学习如何创建和使用BaseDao类是理解数据库访问的重要步骤,这涉及到SQL语句的编写、预编译、...
3、创建实体类Student,根据业务提供需要的构造方法和setter/getter方法。 4、创建BaseDao类,实现数据库连接和关闭功能。 5、创建DAO接口StudentDao,定义所有方法。 6、创建DAO实现类StdudentDaoImpl,继承...
- 属性使用`private`修饰,提供`getter`和`setter`方法。 - 可选地,实现`Serializable`接口以支持分布式应用。 - 可选地,重写`equals()`, `toString()`, `hashCode()`方法。 5. **数据层工厂类(DAOFactory)*...
// 省略getter和setter } // UserMapper.java (Mapper接口) public interface UserMapper extends BaseMapper<User> { } ``` 六、配置MyBatisPlus 在SpringBoot的配置类中,注入MyBatisPlus配置,开启分页功能:...