利用Java 7语言新特性直接使用JDBC

Java 7引入了try-with-resources,使手写JDBC代码简洁了许多。下面以mysql为例,演示一段代码。环境:java 1.7.0_17,mysql 5.5.29,mysql connector/j 5.1.24(5.1.21以上才支持jdbc 4.1)。


CREATE TABLE account (
name VARCHAR(64),
id INT PRIMARY KEY NOT NULL,
address TEXT,
balance DECIMAL(8,2)
);



public class Account {
private int id;
private String name;
private String address;
private double balance;

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}

public double getBalance() {
return balance;
}

public void setBalance(double balance) {
this.balance = balance;
}
}



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionFactory {
public static Connection getConnection() throws SQLException {
String url = "jdbc:mysql://localhost/test";
String user = "root";
String password = "password";
return DriverManager.getConnection(url, user, password);
}
}



import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class AccountDao {
public List<Account> getAccounts() throws SQLException {
List<Account> list = new ArrayList<>();
try(Connection c = ConnectionFactory.getConnection()) {
try (Statement s = c.createStatement()) {
ResultSet rs = s.executeQuery("select * from account");
while (rs.next()) {
Account a = new Account();
a.setId(rs.getInt("id"));
a.setName(rs.getString("name"));
a.setAddress(rs.getString("address"));
a.setBalance(rs.getDouble("balance"));
list.add(a);
}
}
}
return list;
}
}


代码依然比较简陋,不如框架完善。但是作为演示,对初学者的压力会小很多。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值