JdbcDaoSupport 操作CLOB、BLOB数据字段

本文介绍了如何在Spring JDBC中使用JdbcDaoSupport处理CLOB和BLOB数据字段。通过配置DefaultLobHandler并利用AbstractLobCreatingPreparedStatementCallback及LobCreator,实现了单条和批量插入包含CLOB和BLOB字段的数据。
摘要由CSDN通过智能技术生成

一,首先在配置文件中注入

 <bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true"></bean>

 

 

二,直接使用getJdbcTemplate().execute来使用Lobcreator

@Repository

public class ArticleDAO extends BaseDAO{

    @Resource

    private LobHandler lobHandler;

 

    /**

     * 对去重后数据进行持久化

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我是一个语言模型AI,无法提供完整的Maven项目代码。但是,我可以提供一个简单的示例代码,帮助你实现数据分页的功能。 首先,在servlet层中,我们需要获取前端传入的分页参数,并调用service层进行数据查询和分页处理,最后将结果返回给前端。以下是一个简单的pageservlet代码示例: ```java @WebServlet("/page") public class PageServlet extends HttpServlet { private PageService pageService = new PageServiceImpl(); protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取前端传入的分页参数 int pageNum = Integer.parseInt(request.getParameter("pageNum")); int pageSize = Integer.parseInt(request.getParameter("pageSize")); String gender = request.getParameter("gender"); String area = request.getParameter("area"); int age1 = Integer.parseInt(request.getParameter("age1")); int age2 = Integer.parseInt(request.getParameter("age2")); String occupation = request.getParameter("occupation"); String maritalStatus = request.getParameter("marital_status"); // 调用service层进行数据查询和分页处理 PageResult<User> pageResult = pageService.getUserByPage(pageNum, pageSize, gender, area, age1, age2, occupation, maritalStatus); // 将结果返回给前端 request.setAttribute("pageResult", pageResult); request.getRequestDispatcher("/index.jsp").forward(request, response); } } ``` 接下来,我们需要在service层中实现分页查询的逻辑。以下是一个简单的pageservice代码示例: ```java public interface PageService { PageResult<User> getUserByPage(int pageNum, int pageSize, String gender, String area, int age1, int age2, String occupation, String maritalStatus); } public class PageServiceImpl implements PageService { private PageDao pageDao = new PageDaoImpl(); @Override public PageResult<User> getUserByPage(int pageNum, int pageSize, String gender, String area, int age1, int age2, String occupation, String maritalStatus) { // 计算分页查询的起始位置 int start = (pageNum - 1) * pageSize; // 调用dao层进行数据查询 List<User> userList = pageDao.getUserListByPage(start, pageSize, gender, area, age1, age2, occupation, maritalStatus); // 查询总记录数 int totalCount = pageDao.getUserCount(gender, area, age1, age2, occupation, maritalStatus); // 封装为PageResult对象并返回 return new PageResult<>(pageNum, pageSize, totalCount, userList); } } ``` 最后,在dao层中,我们需要使用jdbcTemplate连接数据库,并实现分页查询和查询总记录数的方法。以下是一个简单的pagedao代码示例: ```java public interface PageDao { List<User> getUserListByPage(int start, int pageSize, String gender, String area, int age1, int age2, String occupation, String maritalStatus); int getUserCount(String gender, String area, int age1, int age2, String occupation, String maritalStatus); } public class PageDaoImpl extends JdbcDaoSupport implements PageDao { @Override public List<User> getUserListByPage(int start, int pageSize, String gender, String area, int age1, int age2, String occupation, String maritalStatus) { String sql = "SELECT * FROM user WHERE 1=1"; if (StringUtils.isNotBlank(gender)) { sql += " AND gender='" + gender + "'"; } if (StringUtils.isNotBlank(area)) { sql += " AND area='" + area + "'"; } if (age1 > 0) { sql += " AND age>=" + age1; } if (age2 > 0) { sql += " AND age<=" + age2; } if (StringUtils.isNotBlank(occupation)) { sql += " AND occupation='" + occupation + "'"; } if (StringUtils.isNotBlank(maritalStatus)) { sql += " AND marital_status='" + maritalStatus + "'"; } sql += " LIMIT ?,?"; return getJdbcTemplate().query(sql, new Object[]{start, pageSize}, new BeanPropertyRowMapper<>(User.class)); } @Override public int getUserCount(String gender, String area, int age1, int age2, String occupation, String maritalStatus) { String sql = "SELECT COUNT(*) FROM user WHERE 1=1"; if (StringUtils.isNotBlank(gender)) { sql += " AND gender='" + gender + "'"; } if (StringUtils.isNotBlank(area)) { sql += " AND area='" + area + "'"; } if (age1 > 0) { sql += " AND age>=" + age1; } if (age2 > 0) { sql += " AND age<=" + age2; } if (StringUtils.isNotBlank(occupation)) { sql += " AND occupation='" + occupation + "'"; } if (StringUtils.isNotBlank(maritalStatus)) { sql += " AND marital_status='" + maritalStatus + "'"; } return getJdbcTemplate().queryForObject(sql, Integer.class); } } ``` 以上就是一个简单的基于html,servlet,service,dao层之间进行数据分页的示例代码,希望能对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值