编写自己的JDBC框架

 

今天主要介绍了如何编写自己的JDBC框架,和框架中的元数据

元数据- DataBaseMetaData

l      元数据:数据库、表、列的定义信息。

l      Connection.getDatabaseMetaData()

l      DataBaseMetaData对象

•        getURL():返回一个String类对象,代表数据库的URL。

•        getUserName():返回连接当前数据库管理系统的用户名。

•        getDatabaseProductName():返回数据库的产品名称。

•        getDatabaseProductVersion():返回数据库的版本号。

•        getDriverName():返回驱动驱动程序的名称。

•        getDriverVersion():返回驱动程序的版本号。

•        isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。

l      元数据- ParameterMetaData

l      PreparedStatement . getParameterMetaData()

•        获得代表PreparedStatement元数据的ParameterMetaData对象。

•        Select * from user where name=? And password=?

l      ParameterMetaData对象

•        getParameterCount()

l      获得指定参数的个数

•        getParameterType(int param)

l      获得指定参数的sql类型

l      元数据- ResultSetMetaData

l      ResultSet. getMetaData()

•        获得代表ResultSet对象元数据的ResultSetMetaData对象。

l      ResultSetMetaData对象

•        getColumnCount()

l      返回resultset对象的列数

•        getColumnName(int column)

l      获得指定列的名称

•         getColumnTypeName(int column)

l      获得指定列的类型

l      使用元数据简化JDBC代码

l      业务背景:系统中所有实体对象都涉及到基本的CRUD操作:

•        所有实体的CUD操作代码基本相同,仅仅发送给数据库的SQL语句不同而已,因此可以把CUD操作的所有相同代码抽取到工具类的一个update方法中,并定义参数接收变化的SQL语句。

•        实体的R操作,除SQL语句不同之外,根据操作的实体不同,对ResultSet的映射也各不相同,因此可义一个query方法,除以参数形式接收变化的SQL语句外,可以使用策略模式由qurey方法的调用者决定如何把ResultSet中的数据映射到实体对象中。

l      O-R Mapping简介

l      什么是O-R  Mapping

l      常用O-R Mapping映射工具

•        Hibernate

•        Ibatis

•        Commons DbUtils(只是对JDBC简单封装)

 

可以使用Spring框架JdbcTemplate来简化JDBC操作,以下是一个简单的示例代码: 1. 配置数据源 在Spring配置文件中配置数据源,例如: ``` <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="123456"/> </bean> ``` 2. 创建JdbcTemplate对象 在Spring配置文件中创建JdbcTemplate对象,并注入数据源,例如: ``` <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean> ``` 3. 编写DAO类 在DAO类中使用JdbcTemplate执行SQL语句,例如: ``` public class UserDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void addUser(User user) { String sql = "insert into user(name, age) values (?, ?)"; jdbcTemplate.update(sql, user.getName(), user.getAge()); } public List<User> getUsers() { String sql = "select * from user"; return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class)); } } ``` 4. 注入DAO类 在Spring配置文件中注入DAO类,并注入JdbcTemplate对象,例如: ``` <bean id="userDao" class="com.example.UserDao"> <property name="jdbcTemplate" ref="jdbcTemplate"/> </bean> ``` 5. 使用DAO类 在业务逻辑中使用DAO类,例如: ``` public class UserService { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void addUser(User user) { userDao.addUser(user); } public List<User> getUsers() { return userDao.getUsers(); } } ``` 以上就是利用Spring框架编写JDBC项目的基本步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值