jdbcTemplate 例子

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);
	}
}

 

使用 `JdbcTemplate` 连接 `SQL Server` 数据库的示例代码如下: ```java import org.springframework.jdbc.core.JdbcTemplate; import javax.sql.DataSource; public class JdbcSqlServerExample { private JdbcTemplate jdbcTemplate; public JdbcSqlServerExample(DataSource dataSource) { this.jdbcTemplate = new JdbcTemplate(dataSource); } public void getEmployees() { String sql = "SELECT * FROM employees"; List<Employee> employees = jdbcTemplate.query(sql, new EmployeeRowMapper()); for (Employee employee : employees) { System.out.println(employee); } } } class Employee { private int id; private String firstName; private String lastName; // getters and setters } class EmployeeRowMapper implements RowMapper<Employee> { @Override public Employee mapRow(ResultSet rs, int rowNum) throws SQLException { Employee employee = new Employee(); employee.setId(rs.getInt("id")); employee.setFirstName(rs.getString("first_name")); employee.setLastName(rs.getString("last_name")); return employee; } } ``` 在这个示例中,我们创建了一个 `JdbcSqlServerExample` 类,构造方法中传入了 `DataSource` 对象,`JdbcTemplate` 对象会使用这个数据源来连接数据库。然后我们编写了一个 `getEmployees` 方法,通过 `jdbcTemplate` 对象执行 SQL 查询语句,将结果映射为 `Employee` 对象列表。`EmployeeRowMapper` 类实现了 `RowMapper` 接口,用于将查询结果集中的每一行映射为一个 `Employee` 对象。 需要注意的是,连接 `SQL Server` 数据库时,需要在 `DataSource` 中指定数据库驱动类和连接字符串,例如: ```java import com.microsoft.sqlserver.jdbc.SQLServerDataSource; SQLServerDataSource dataSource = new SQLServerDataSource(); dataSource.setServerName("localhost"); dataSource.setDatabaseName("mydb"); dataSource.setUser("myuser"); dataSource.setPassword("mypassword"); ``` 以上示例代码仅供参考,具体实现需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值