当前位置: 首页 > news >正文

做性的网站有哪些内容写软文

做性的网站有哪些内容,写软文,哈尔滨网站建设资海,做赚钱网站【SpringBoot初级篇】JdbcTemplate常用方法JdbcTemplate 查询JdbcTemplate 插入、更新、删除execute执行任意的SQLNamedParameterJdbcTemplate函数场景说明update(String sql, Nullable Object… args)增,删,改queryForObject(sql, Integer.class)查询返…

【SpringBoot初级篇】JdbcTemplate常用方法

  • JdbcTemplate 查询
  • JdbcTemplate 插入、更新、删除
  • execute执行任意的SQL
  • NamedParameterJdbcTemplate

函数场景说明
update(String sql, @Nullable Object… args)增,删,改
queryForObject(sql, Integer.class)查询返回某个值
queryForObject(sql, new BeanPropertyRowMapper<>(User.class), 1)查询返回的是某个对象、BeanPropertyRowMapper返回自定义对象
query(sql, new BeanPropertyRowMapper<>(User.class))查询返回的是某个集合
queryForMap(sql)查询返回的是map

JdbcTemplate 查询

1、查询记录条数

String sql = "select count(*) from tb_user";
int count = jdbcTemplate.queryForObject(sql, Integer.class);

2、按条件查询记录条数,通过?参数绑定

String sql = "select count(*) from tb_user where username = ?";
int count = jdbcTemplate.queryForObject(sql, Integer.class, "Tom");或者String sql = "select count(*) from tb_user where username = ?";
Object[] params = new Object[]{"Tom"};
int count = jdbcTemplate.queryForObject(sql, params, Integer.class);

3、查询多个字段,返回一个Map

String sql = "select user_id, username, age from tb_user where user_id = ?";
Object[] params = new Object[]{"46a8247fbffc46c3a591961351fa3277"};
Map<String, Object> resultMap = jdbcTemplate.queryForMap(sql, params);

4、查询多条数据,每条数据都以Map形式返回,整个结果是List<Map<String, Object>>

String sql = "select user_id, username, age from tb_user where age = ?";
Object[] params = new Object[]{25};
List<Map<String, Object>> resultMapList = jdbcTemplate.queryForList(sql, params);

5、查询单条数据并通过RowMapper映射成实体对象

String sql = "select user_id, username, mobile, create_time from tb_user where user_id = ?";
Object[] params = new Object[]{"0ff5771760c1483abaefa7a3e530ea6d"};
User user = jdbcTemplate.queryForObject(sql, params,new RowMapper<User>() {@Overridepublic User mapRow(ResultSet rs, int rowNum) throws SQLException {// 在这里做字段到实体的映射User u = new User();u.setUserId(rs.getString("user_id"));u.setUsername(rs.getString("username"));u.setMobile(rs.getString("mobile"));u.setCreateTime(rs.getTimestamp("create_time"));return u;}});

6、查询对象集合

String sql = "select user_id, username, mobile, create_time from tb_user where username = ?";
Object[] params = new Object[]{"相同的用户名"};
List<User> users = jdbcTemplate.query(sql, params,new RowMapper<User>() {@Overridepublic User mapRow(ResultSet rs, int rowNum) throws SQLException {User u = new User();u.setUserId(rs.getString("user_id"));u.setUsername(rs.getString("username"));u.setMobile(rs.getString("mobile"));u.setCreateTime(rs.getTimestamp("create_time"));return u;}});

7、将字段到实体映射抽出来单独维护

通常在应用中,字段到实体的映射只需要编写一份来维护,因此前边的两例中的User映射可以单独抽出来成为一个UserRowMapper类:

public class UserRowMapper implements RowMapper<User> {@Overridepublic User mapRow(ResultSet rs, int rowNum) throws SQLException {User u = new User();u.setUserId(rs.getString("user_id"));u.setUsername(rs.getString("username"));u.setMobile(rs.getString("mobile"));u.setCreateTime(rs.getTimestamp("create_time"));return u;}
}

然后在使用的时候创建就行了:

String sql = "select user_id, username, mobile, create_time from tb_user where username = ?";
List<User> users = jdbcTemplate.query(sql, new Object[]{"相同的用户名"}, new UserRowMapper());

8、插入数据并返回生成的uuid主键

String sql = "insert into tb_user (username, mobile, create_time, age) values(?, ?, ?, ?)";// KeyHolder保存返回的数据,可以指定返回的列
KeyHolder keyHolder = new GeneratedKeyHolder();jdbcTemplate.update(new PreparedStatementCreator() {@Overridepublic PreparedStatement createPreparedStatement(Connection con) throws SQLException {// 指定返回的属性列名为user_idPreparedStatement ps = con.prepareStatement(sql, new String[]{"user_id"});// 插入的数据ps.setString(1, "新用户");ps.setString(2,"12345678");ps.setTimestamp(3, new Timestamp(System.currentTimeMillis()));ps.setInt(4, 28);return ps;}
}, keyHolder);// 输出生成的uuid
System.out.println(keyHolder.getKeys().get("user_id"));

JdbcTemplate 插入、更新、删除

JdbcTemplate中,数据的插入、更新、删除操作都是通过update(...)来完成的。

1、插入单条数据

String sql = "insert into tb_user(user_id, username, mobile, create_time) values (?, ?, ?, ?)";
Object[] params = new Object[]{uuid(), "新用户", "134578546", new Date()};
int successCount = jdbcTemplate.update(sql, params);

2、批量插入

String sql = "insert into tb_user(user_id, username, mobile, create_time) values (?, ?, ?, ?)";
List<Object[]> params = new ArrayList<>();
params.add(new Object[]{uuid(), "新用户1", "134578546", new Date()});
params.add(new Object[]{uuid(), "新用户2", "134578546", new Date()});
int[] successCounts = jdbcTemplate.batchUpdate(sql, params);

3、更新单条数据

String sql = "update tb_user set username = ? where user_id = ?";
Object[] params = new Object[]{"更新用户名", "a7e7c5b4750945249d3da9c543f3fe43"};
int successCount = jdbcTemplate.update(sql, params);

4、批量更新

String sql = "update tb_user set username = ? where user_id = ?";
List<Object[]> params = new ArrayList<>();
params.add(new Object[]{"更新用户名1", "0ff5771760c1483abaefa7a3e530ea6d"});
params.add(new Object[]{"更新用户名2", "4e88b38660324334be61f0c9b2edd7f6"});
int[] successCounts = jdbcTemplate.batchUpdate(sql, params);

5、删除单条数据

String sql = "delete from tb_user where user_id = ?";
Object[] params = new Object[]{"a7e7c5b4750945249d3da9c543f3fe43"};
int successCount = jdbcTemplate.update(sql, params);

6、批量操作

public void removeByIds(String[] rids, Integer year) {String deleteSQL = "delete from nt_budget_income_plan where  ADMDIV_CODE = ? and year = ? and ID = ?";// 设置预编译参数jdbcTemplate.batchUpdate(deleteSQL, new BatchPreparedStatementSetter() {@Overridepublic void setValues(PreparedStatement ps, int i) throws SQLException {String rid = rids[i];ps.setString(1, SessionUtil.getSession().getAdmdivCode());ps.setInt(2, year);ps.setLong(3, Long.parseLong(rid));}@Overridepublic int getBatchSize() {return rids.length;}});
}

execute执行任意的SQL

可以通过execute(..)执行任何SQL,一般用来执行DDL语句

String sql = "create table new_table (id varchar(32), name varchar(100))";
jdbcTemplate.execute(sql);

NamedParameterJdbcTemplate

在使用JdbcTemplate的时候,如果要使用参数,那么需要通过在SQL中使用?做占位符。

NamedParameterJdbcTemplate提供了一个更加直观的方式来定义SQL中的占位符,即通过:变量名的形式。

可以通过Map或者BeanPropertySqlParameterSource传递参数值:

Map直接设置参数值;

String sql = "select count(*) from tb_user where username = :username and age = :age";
Map<String, Object> params = new HashMap<>(2);
params.put("username", "Michael");
params.put("age", 25);
Integer count = namedParameterJdbcTemplate.queryForObject(sql, params, Integer.class);

其他方法同JdbcTemplate类似

http://www.hkea.cn/news/261616/

相关文章:

  • 福建城市建设厅网站怎么推广一个网站
  • 机构网站建设需要交费吗关键词挖掘
  • 专业网站建设费用报价今日最新消息
  • 电商网站建设论文2022黄页全国各行业
  • 能源企业 网站建设网络营销的应用
  • 如何看网站是用什么语言做的关键词排名是由什么决定的
  • 政府网站建设招标书百度网站收录
  • 已经有了网站怎么做推广哈尔滨关键词优化报价
  • 网站建设与管理作业镇江推广公司
  • 域名申请好后 如何建设网站网站权重划分
  • 佛山百度网站快速优化网络营销推广工具
  • 建一个网站需要哪些人广州seo网站推广公司
  • 建设银行etc官方网站搜索引擎优化的七个步骤
  • 做网站需要花钱吗海南百度推广运营中心
  • 做的网站显示图片很慢百度运营公司
  • 青州哪里做网站公司推广渠道
  • 网站面包屑导航怎么做的网推接单平台有哪些
  • 宜昌网站建设兼职百度关键词排名软件
  • 如何让百度快照找到自己的网站营销策划方案ppt模板
  • php网站超市广告软文是什么意思
  • b2c跨境电商宣城网站seo
  • 网站建设一流公司免费网站开发平台
  • 网站开发模式名词外贸谷歌优化
  • 网站素材 下载产品推广渠道
  • 网站后台维护怎么做seo专员工资一般多少
  • 中国网站推广黄页名录微商推广哪家好
  • 哈尔滨网站开发电话电商培训基地
  • 如何用php数据库做网站搜索seo优化托管
  • 中国城乡建设部人力网站首页优化落实疫情防控
  • 做网站到底能不能赚钱网络优化工程师前景