Spring JdbcTemplate操作类

JdbcTemplate使用详解
1.JdbcTemplate
在Spring中,JdbcTemplate是最常被使用的类,它为用户程序提供了许多便利的数据库操作方法,比如查询、更新等。JdbcTemplate是core包的核心类,它替我们完成了资源的创建及释放工作,从而简化了对JDBC的使用。
1)执行SQL语句
一旦获得一个DataSource和一个JdbcTemplate,我们就可以使用JdbcTemplate提供的丰富功能实现我们的操作。下面创建一张表:
public void execute(){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
jdbc.[color=red]execute[/color]("create table username(id integer,username varchar(20),password varchar(20),email varchar(50))");
}

2)执行更新语句
可以使用update()来执行一个更新的SQL语句,其中的问号表示的参数使用数组表示,如下所示:
public void updateUsername(int id,String name){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
jdbc.update("update mytable set name=?where id=?",[color=red]new [/color][color=red]Object[]{name,new Long(id)});[/color]
}

execute和update方法之间的区别是:update方法返回的是受影响的记录数目的一个计数,并且如果传入一个参数的话,使用的是Java.sql.PreparedStatement;而execute方法总是使用java.sql.Statement,不接受参数,而且它不返回受影响记录的计数,更适合创建和丢弃表的语句,而update方法更适合于插入、更新和删除操作,这是需要注意的。

3)执行单表查询
比如返回一个汇总(count)结果或者从返回行结果中取得指定列的值,我们使用queryForInt()、queryForLong()或者queryForObject()方法。queryForObject方法用来将返回的JDBC类型对象转换成指定的Java对象,如下例:
public int getCount(){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
return count=jdbc.[color=red]queryForInt[/color]("select count(*)from user");
}
public String getUsername(){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
return name=(String) jdbc.[color=red]queryForObject[/color]("select name from username",[color=red]String.class[/color]);
}

4)执行条件查询
在调用queryForObject()进行查询时,需要先使用回调方法创建一个RowMapper类型变量,在执行查询时输入该回调变量,并输入查询的参数数组,如下所示:
public User findUser(long id){
String sql="select id,username,password,email from user where id=?";
RowMapper mapper = new RowMapper(){
public Object mapRow(ResultSet rs,int rowNum)throws SQLException{
User user = new User();
user.setId(rs.getLong("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
return user;
}
};
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
return (User)jdbc.[color=red]queryForObject[/color](sql,[color=red]mapper,new Object[]{Long.vlaueof(id)});[/color]

}

5)返回查询列表
返回表中的所有记录:
public List getUserList(){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
List rows = jdbc.[color=red]queryForList[/color]("select id,username from user");
return rows;
}
返回的结果集类似下面这种形式:
[{id=1,username=admin},{id=2,username=test}]

如果返回的结果集部止两个字段,则可以使用回调的方式将每一行记录转换为一个JavaBean对象。如下所示,使用query函数进行查询,并进行了行的回调。在回调中对每一个结果集转换为User对象:
public boolean getUserList(String username,String password){
JdbcTemplate jdbc = new JdbcTemplate(dataSource);
List userList=jdbc.query("select*from user"),
[color=red] new RowMapper(){
public Object mapRow(ResultSet rs,int rowNum)throws Exception{[/color]
User user = new User();
user.setId(is.getLong("id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
return user;
}
});
return userList;
}
Nano-ESG数据资源库的构建基于2023年初至2024年秋季期间采集的逾84万条新闻文本,从中系统提炼出企业环境、社会及治理维度的信息。其构建流程首先依据特定术语在德语与英语新闻平台上检索,初步锁定与德国DAX 40成分股企业相关联的报道。随后借助嵌入技术对文本段落执行去重操作,以降低内容冗余。继而采用GLiNER这一跨语言零样本实体识别系统,排除与目标企业无关的文档。在此基础上,通过GPT-3.5与GPT-4o等大规模语言模型对文本进行双重筛选:一方面判定其与ESG议题的相关性,另一方面生成简明的内容概要。最终环节由GPT-4o模型完成,它对每篇文献进行ESG情感倾向(正面、中性或负面)的判定,并标注所涉及的ESG具体维度,从而形成具备时序特征的ESG情感与维度标注数据集。 该数据集适用于多企业可持续性研究,例如ESG情感趋势分析、ESG维度细分别研究,以及企业可持续性事件的时序演变追踪。研究者可利用数据集内提供的新闻摘要、情感标签与维度分,深入考察企业在不同时期的环境、社会及治理表现。此外,借助Bertopic等主题建模方法,能够从数据中识别出与企业相关的核心ESG议题,并观察这些议题随时间的演进轨迹。该资源以其开放获取特性与连续的时间覆盖,为探究企业可持续性表现的动态变化提供了系统化的数据基础。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值