java中的jdbc连接数据库方法及应用

jdbc连接数据库的口诀:猪脸特直观

import java.sql.Connection;

import java.sql.Driver;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class Demo03 {

public static void main(String[] args) throws ClassNotFoundException, SQLException {

//口诀:猪脸特直观

//注册

Class.forName("com.mysql.jdbc.Driver");

//连接

Connection connention = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3", "root", "ms");

String sql = "SELECT * FROM student"; //准备sql语句

//获取Statement对象(简称:特)

Statement statement = connention.createStatement();

//执行

ResultSet resultSet = statement.executeQuery(sql);

while(resultSet.next()){

//ResultSet里面的get相关方法列号是从1开始的,切记。 System.out.println(resultSet.getInt(1)+","+resultSet.getString(2)+","+resultSet.getInt(3)+","+resultSet.getString(4));

}

//关闭(倒关)

resultSet.close();

statement.close();

connention.close();

}

}

  1. 注册有三种方法
  • 方法一:Class.forName("com.mysql.jdbc.Driver");
  • 方法二:Driver driver = new com.mysql.jdbc.Driver();

//注册

DriverManager.registerDriver(driver);

Connection Connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3", "root", "ms");

  • 方法三:DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //匿名对象注册

Connection Connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3", "root", "ms");

  1. 连接有三种方法
  • 方法一:Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3", "root", "ms");
  • 方法二:Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3?user=root&password=ms");
  • 方法三:String url = "jdbc:mysql://localhost:3306/test3";

Properties prop = new Properties();

prop.setProperty("user", "root");

prop.setProperty("password", "ms");

Connection connection = DriverManager.getConnection(url, prop);

接口

  • Driver中的java.sql类 DriverManager

常见的方法有:getConnection(String url, String user, String password)

试图建立到给定数据库 URL 的连接。

  • Connection接口:与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。

常见的方法有

close()

立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。

createStatement()

创建一个 Statement 对象来将 SQL 语句发送到数据库。

prepareStatement(String sql)

创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。

  • Statement接口:用于执行静态 SQL 语句并返回它所生成结果的对象。

常见的方法有:

close()

立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。

executeQuery(String sql)

执行给定的 SQL 语句,该语句返回单个 ResultSet 对象

executeUpdate(String sql)

执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。

  • PreparedStatement接口

extends Statement

表示预编译的 SQL 语句的对象。

SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。

  • ResultSet接口:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

常见的方法有:

close()

立即释放此 ResultSet 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。

next()

将光标从当前位置向前移一行。

getInt(int columnIndex)

以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。

同样的还有getByte,getString,getLong,getDouble,getBoolen,getObject等等

java.sql.statement 类 throws SQL Exception

  • createStatement()

创建一个 Statement 对象来将 SQL 语句发送到数据库。不带参数的 SQL 语句通常使用 Statement 对象执行。如果多次执行相同的 SQL 语句,使用 PreparedStatement 对象可能更有效。

例如:适用于select查询中

Statement statement = connention.createStatement();

ResultSet resultSet = statement.executeQuery(sql);

  • prepareStatement(String sql)

创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。

带有 IN 参数或不带有 IN 参数的 SQL 语句都可以被预编译并存储在 PreparedStatement 对象中。然后可以有效地使用此对象来多次执行该语句。

参数:

sql - 可能包含一个或多个 ‘?‘ IN 参数占位符的 SQL 语句

以下方法中需要建立相关数据库才能得出正确结果

例如:java 中创建类的方法,在数据库中插入数据

public class AccountDaoImpl implements IAccountDao{

@Override

public Integer addAccount(AccountModel account) {

String sql = "INSERT INTO student VALUES(NULL,?,?)";

Connection conn = null;

PreparedStatement pstmt = null;

Integer result = null;

try {

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test8","root","ms");

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, account.getname());

pstmt.setDouble(2, account.getage());

result = pstmt.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("新增失败!");

} finally {

try {

DBUtil.close(pstmt, conn);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return result;

}

java EE中连接数据库的方法,在数据库中插入数据

以下内容请在servlet类中进行填写,并且需要创建相关数据库,最后在webcontant文件夹中建立HTML文件,并且运行填入数据。html文件如下

//设置字符编码几格式

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

response.setContentType("text/html");

//连接数据库

String name=request.getParameter("name");

String ageString= request.getParameter("age");

double age=Double.parseDouble(ageString);

Connection conn=null;

PreparedStatement pstmt=null;

int result=0;

try {

conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/test8","root","ms");

String sql="INSERT INTO student(name,age) VALUES(?,?)";

pstmt=conn.prepareStatement(sql);

pstmt.setString(1, name);

pstmt.setDouble(2, age);

result=pstmt.executeUpdate();

if(result>0){

response.getWriter().println("提交成功,谢谢!");

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

try {

pstmt.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

java EE中连接数据库的方法,在数据库中查询数据

//设置字符编码及文本格式

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

response.setContentType("text/html");

//连接数据库

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

try {

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1", "root", "ms");

stmt = conn.createStatement();

rs = stmt.executeQuery("SELECT sname,score FROM `program_score`");

PrintWriter pw = response.getWriter();

pw.println("<table border=‘2px solid‘>");

while(rs.next()){

pw.println("<tr><td>"+rs.getString("sname")+"</td><td>"+rs.getString("score")+"</td></tr>");

}

pw.println("</table>");

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

try {

rs.close();

stmt.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

  1. 查找select 用.executeQuery(String sql);

ResultSet resultSet = statement.executeQuery(String sql);

增加insert、删除delete、改变update 用executeUpdate()

int result=PreparedStatement.executeUpdate();

executeQuery

ResultSet executeQuery(String sql) throws SQLException

执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。

参数:

sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句

返回:

包含给定查询所生成数据的 ResultSet 对象;永远不能为 null

抛出:

SQLException - 如果发生数据库访问错误,在已关闭的 Statement 上调用此方法,或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容

executeUpdate

int executeUpdate(String sql) throws SQLException

执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。

参数:

sql - SQL 数据操作语言(Data Manipulation Language,DML)语句,如 INSERT、UPDATE 或 DELETE;或者不返回任何内容的 SQL 语句,如 DDL 语句。

返回:

(1) 对于 SQL 数据操作语言 (DML) 语句,返回行计数 (2) 对于什么都不返回的 SQL 语句,返回 0

抛出:

SQLException - 如果发生数据库访问错误,在已关闭的 Statement 上调用此方法,或者给定的 SQL 语句生成 ResultSet 对象

时间: 09-03

java中的jdbc连接数据库方法及应用的相关文章

java中使用JDBC连接数据库的步骤

java中使用JDBC连接数据库的步骤? 采纳率:46%6级2015.06.30 1.注册驱动Class.forname("com.mysql.jdbc.Driver");//这是连接mysql数据库的驱动2.获取数据库连接java.sql.Connection conn=java.sql.DriverManager.getConnection(); 3.获取表达式java.sql.Statement stmt=conn.createStatement("jdbc:mysql

java中使用jdbc连接数据库操作

先贴代码,在做说明 import java.sql.*; import java.util.ArrayList; import java.util.List; public class Conn { private static final String DRIVER = "com.mysql.cj.jdbc.Driver";//mysql 8 的驱动 private static final String DR_URL = "jdbc:mysql://localhost:3

Java中vector的使用方法

Vector的使用 vector类底层数组结构的,它包含可以使用整数索引进行访问的组件.不过,vector的大小可以根据需要增大或缩小,以适应创建vector后进行添加或移除项的操作,因此不需要考虑元素是否越界或者会不会浪费内存的问题. 由vector的iterator和listIterator方法所返回的迭代器是快速失败的:也即是它不能并发执行操作.如果在迭代器创建后的任意时间从结构上修改了向量(通过迭代器自身的remove或add方法之外的任何其他方式),则迭代器将抛出ConcurrentM

Java中Integer类的方法

字段摘要 static int MAX_VALUE              保持 int 类型的最大值的常量可取的值为 231-1. static int MIN_VALUE              保持 int 类型的最小值的常量可取的值为 -231. static int SIZE              以二进制补码形式表示 int 值的位数. static Class<Integer> TYPE              表示基本类型 int 的 Class 实例. 构造方法摘要

java中substring的使用方法

str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str=str.substring(int beginIndex,int endIndex);截取str中从beginIndex開始至endIndex结束时的字符串,并将其赋值给str; 下面是一段演示程序: public class StringDemo{ public static void main(String agrs[]){ Str

转- 关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)

package cn.outofmemory.codes.Date; import java.util.Calendar; import java.util.Date; public class CalendarDemo { public static void main(String[] args) { Calendar calendar=Calendar.getInstance(); calendar.setTime(new Date()); System.out.println("现在时间

Java中循环声明变量方法

Java循环声明变量 之前想这样做,但是网上一直搜索不到,下面是我的方式 项目中 // 得到需要查询外表的数量,然后分别创建缓存,插入数据多的时候如果编码在缓存里面,就不需要再去查询数据库了.key:code/value:pk // 根据"数据来源"有多少非空的 就创建几个,使用 "数据来源字段"+Cache 当cacheMap的key Map<String, Map<String, String>> cacheMap =new HashMa

关于时间,日期,星期,月份的算法(Java中Calendar的使用方法)(一)

package cn.outofmemory.codes.Date; import java.util.Calendar; import java.util.Date; public class CalendarDemo { public static void main(String[] args) { Calendar calendar=Calendar.getInstance(); calendar.setTime(new Date()); System.out.println("现在时间

java中字符串切割的方法总结

StringTokenizer最快 ,基本已经不用了,除非在某些需要效率的场合.Scanner最慢. String和Pattern速度差不多.Pattern稍快些. String和Pattern的split 方法效率相当,常用 public   static   void  main(String [] args){ long  start = System.currentTimeMillis(); for ( int  i= 0 ;i< 100000 ;i++){ test1(); } lon