java database connectivity
java链接数据库的规范,由sun公司提供的接口,然后各个数据库厂商提供实现类。
1.将jar包复制到项目中
2.将jar包添加到项目中
pg中列名如果是大写,需要加入双引号"NAME",所以在Java中要使用转义"NAME",另外字符串是需要用单引号’’。
package jdbc;
import java.sql.*;
public class jdbcDemo {
public static void main(String[] args) throws Exception {
// 1.注册驱动,可以不写因为在jar包里的java.sql.Driver已经注册了
Class.forName("org.postgresql.Driver");//将org.postgresql.Driver类加载到内存,该类中使用静态代码块调用了DriverManager.registerDriver()注册
// 2.建立链接,格式是jdbc:postgresql://ip:端口/数据库名称
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres", "postgres", "postgres");
// 3.执行语句
Statement stmt = conn.createStatement();
//更新操作
String sql1 = "update account set score = 112 where id = 1";
int count1 = stmt.executeUpdate(sql1);
System.out.println(count1);
//插入操作
String sql2 = "insert into account(id,\"NAME\",score) values (2,'wang',12)";
int count2 = stmt.executeUpdate(sql2);
System.out.println(count2);
//删除操作
String sql3 = "delete from account where id = 2";
int count3 = stmt.executeUpdate(sql3);
System.out.println(count3);
//查询操作
String sql4 = "select * from account";
ResultSet res1 = stmt.executeQuery(sql4);
res1.next();
String name1 = res1.getString("NAME");
System.out.print(name1);
//防止sql注入
String sql5 = "select * from account where id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql5);//pstmt 效率高可以防止注入
pstmt.setInt(1,1);//给问号赋值
ResultSet res2 = pstmt.executeQuery();
res2.next();
String name2 = res2.getString("NAME");
System.out.print(name2);
res1.close();
res2.close();
pstmt.close();
stmt.close();
conn.close();
}
}