public class JdbcTemplateTest {
static JdbcTemplate jdbc = new JdbcTemplate(JdbcUtils.getDataSource());
public static void main(String[] args) {
}
static int addUser(final User user) {
//更灵活的使用connection
jdbc.execute(new ConnectionCallback() {
public Object doInConnection(Connection con) throws SQLException,
DataAccessException {
String sql = "insert into user(name,birthday, money) values (?,?,?) ";
PreparedStatement ps = con.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS);
ps.setString(1, user.getName());
ps.setDate(2, new java.sql.Date(user.getBirthday().getTime()));
ps.setFloat(3, user.getMoney());
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if (rs.next())
user.setId(rs.getInt(1));
return null;
}
});
return 0;
}
static Map getData(int id) {
String sql = "select id as userId, name, money, birthday from user where id="
+ id;
return jdbc.queryForMap(sql);
}
static String getUserName(int id) {
String sql = "select name from user where id=" + id;
Object name = jdbc.queryForObject(sql, String.class);
return (String) name;
}
static int getUserCount() {
String sql = "select count(*) from user";
return jdbc.queryForInt(sql);
}
static List findUsers(int id) {
String sql = "select id, name, money, birthday from user where id<?";
Object[] args = new Object[] { id };
int[] argTypes = new int[] { Types.INTEGER };
List users = jdbc.query(sql, args, argTypes, new BeanPropertyRowMapper(
User.class));
return users;
}
static User findUser(String name) {
String sql = "select id, name, money, birthday from user where name=?";
Object[] args = new Object[] { name };
Object user = jdbc.queryForObject(sql, args, new BeanPropertyRowMapper(
User.class));
return (User) user;
}
static User findUser1(String name) {
String sql = "select id, name, money, birthday from user where name=?";
Object[] args = new Object[] { name };
Object user = jdbc.queryForObject(sql, args, new RowMapper() {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setMoney(rs.getFloat("money"));
user.setBirthday(rs.getDate("birthday"));
return user;
}
});
return (User) user;
}
}
public class JdbcTemplateTest {
public static JdbcTemplate jdbcTemplet = new JdbcTemplate(JdbcUtils
.getDataSource());
public static void main(String[] args) {
}
// 查询返回对象类型
public static User getUser(String name) {
String sql = "select id,name,password from user where name=?";
Object[] args = new Object[] { name };
Object user = jdbcTemplet.queryForObject(sql, args,
new BeanPropertyRowMapper(User.class));
return (User) user;
}
// 查询返回List类型
@SuppressWarnings("unchecked")
public static List<User> queryUserForList() {
String sql = "select id,name,password from user";
return jdbcTemplet.query(sql, new BeanPropertyRowMapper(User.class));
}
// 插入
public static void insert() {
String sql = "insert into user(name,password) values(?,?)";
jdbcTemplet.update(sql, new Object[] { "wanger", "123456" });
}
// 删除
public static void delete(int id) {
String sql = "delete from user where id=?";
jdbcTemplet.update(sql, new Object[] { 4 });
}
// 更新
public static void update(User user) {
String sql = "update user set name=?,password=? where id=?";
Object[] args = new Object[] { "张三", "000000", 1 };
int[] argTypes = new int[] { Types.VARCHAR, Types.VARCHAR,
Types.INTEGER };
jdbcTemplet.update(sql, args, argTypes);
}
// 插入日期类型
public static void insert2() {
String sql = "insert into date_table(time) values(?)";
Date date = new Date();
Object[] args = new Object[] { date };
// int[] argTypes = new int[] { Types.TIMESTAMP };
// jdbcTemplet.update(sql, args, argTypes);
jdbcTemplet.update(sql, args);
}
}
分享到:
相关推荐
在这个例子中,如果`updateUser`或`deletePostsByUserId`中的任何一处抛出异常,整个事务将被回滚,确保数据的一致性。 Spring JdbcTemplate的优点包括: 1. **简洁的API**:提供了一组简单易用的方法来执行常见的...
总的来说,这个"spring mvc+jdbctemplate非注解例子"涵盖了Web开发中的多个核心概念,包括Spring MVC的MVC设计模式、JdbcTemplate对数据库操作的抽象、AOP的切面编程以及连接池的高效资源管理。每个部分都需要对...
在这个例子中,提供的文件`log4j.xml`表明了日志配置可能使用的是Log4j。在Log4j配置文件中,你可以设置合适的级别(如`DEBUG`)以便捕获数据库操作的日志信息。 ```xml ...
在这个例子中,`values`是一个包含待插入数据的对象数组。`setValues`方法会被调用多次,每次为一个`PreparedStatement`对象设置参数,`getBatchSize`则返回批处理中语句的数量。 `JdbcTemplate`的`batchUpdate`...
在这个例子中,我们使用了`JdbcTemplate`的`batchUpdate`方法来进行批量更新操作,并且在调用该方法之前关闭了`Connection`对象的自动提交功能。如果在执行过程中发生了异常,比如主键冲突导致的插入失败,那么所有...
在这个例子中,`id = ?`是预编译的占位符,`params`数组包含了实际参数,`MyRowMapper`是一个自定义的映射器,用于将查询结果转换为Java对象。 接下来,让我们看看如何使用`jdbcTemplate`进行预编译的插入操作。`...
以下是一个简单的例子,展示了如何插入一条记录: ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework....
在这个例子中,`@Autowired`注解使JdbcTemplate自动注入到MyController类中。然后,我们定义了一个处理GET请求的方法`queryData()`,其中使用了JdbcTemplate的`queryForList()`方法执行SQL查询并返回结果。 ...
才看了《spring 3.x》第一章内容,写的一个例子;感觉写得挺经典的。 于是骄傲地分享出来。 除了隐藏jdbc.properties里配置;其余都无保留的分享出来了。这里其实一个关于分库分表的配置文件。 使用技术细节:...
在这个例子中,`UserRepositoryImpl`接收JdbcTemplate作为构造参数,然后在具体方法中调用其API。`UserRowMapper`是自定义的结果集映射器,用于将数据库记录转化为User对象。 JdbcTemplate还提供了事务管理的能力,...
在`find()`方法的例子中,我们可以通过实现`processRow(ResultSet rs)`方法来处理每一行数据。例如,获取用户信息时,我们可以创建一个User对象,然后从ResultSet中提取字段值并设置到User对象中。 4. **...
这个Demo为学习和理解Struts、Spring和JdbcTemplate的集成提供了一个实际的例子,帮助开发者更好地掌握Java Web开发中的这些核心工具。通过实践,我们可以了解到如何在实际项目中有效地组合这些技术,提高代码的可...
在本文中,我们将深入探讨如何将SpringMVC与jdbcTemplate集成,同时利用Druid作为连接池,实现一个基于REST...这个实例不仅展示了如何整合这些技术,还提供了多数据库支持的灵活性,是学习和实践Java Web开发的好例子。
在这个例子中,`queryForList`方法执行SQL查询,并将结果返回为一个`Map`列表。 ##### 3.3 更新操作 尽管`JDBCTemplate`非常适合用于查询操作,但它同样也支持执行更新、插入和删除等操作。需要注意的是,由于更新...
在上面的例子中,我们使用了`ItemMapper`来实现`RowMapper`接口,具体代码示例如下: ```java private static final class ItemMapper implements RowMapper<Item> { @Override public Item mapRow(ResultSet rs,...
在这个例子中,我们注入了JdbcTemplate实例,并使用query方法执行SQL查询。传入的RowCallbackHandler将在遍历结果集时被调用,处理每一行数据。 **5. 总结** Spring JdbcTemplate简化了数据库操作,通过模板模式...
以下是一个使用Tomcat JDBC Pool的例子: ```java @Configuration public class DatabaseConfig { @Bean public DataSource dataSource() { Tomcat.jdbc.pool.DataSource dataSource = new Tomcat.jdbc.pool....
在这个例子中,我们注入了JdbcTemplate实例,并调用`update()`方法执行SQL,其中问号(?)是占位符,实际值由方法的参数提供。 2. 读取(Read) 读取数据通常涉及到查询数据库。JdbcTemplate提供了`query()`和`...
以下是一个使用`@Transactional`注解的例子,展示了如何在Service类中控制事务传播: ```java @Service public class UsersService { @Autowired private JdbcTemplate jdbcTemplate; // 其他成员变量和方法 ...
JdbcTemplate主要提供以下五类方法;JdbcTemplate类支持的回调类;并附例子