本文目錄一覽:
- 1、怎麼把java的數據導入數據庫
- 2、怎麼使用JAVA連接數據庫?
- 3、java讀取TXT文件然後插入數據庫,怎麼做
- 4、java怎樣將讀取數據寫入數據庫
- 5、java中怎麼向數據庫插入數據 ?
- 6、java向數據庫插入數據時的錯誤: Duplicate entry ” for key ‘PRIMARY’ 是什麼問題,怎麼解決,先謝啦!
怎麼把java的數據導入數據庫
Java可以使用JDBC對數據庫進行讀寫。JDBC訪問一般分為如下流程:
1、加載JDBC驅動程序:
在連接數據庫之前,首先要加載想要連接的數據庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//加載MySql的驅動類
Class.forName(“com.mysql.jdbc.Driver”) ;
}catch(ClassNotFoundException e){
System.out.println(“找不到驅動程序類 ,加載驅動失敗!”);
e.printStackTrace() ;
}
成功加載後,會將Driver類的實例註冊到DriverManager類中。
2、提供JDBC連接的URL
?連接URL定義了連接數據庫時的協議、子協議、數據源標識。
?書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是數據庫管理系統名稱。
數據源標識:標記找到數據庫來源的地址與連接端口。
例如:(MySql的連接URL)
jdbc:mysql://localhost:3306/test?useUnicode=truecharacterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding設置為
gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字符編碼方式。
3、創建數據庫的連接
?要連接數據庫,需要向java.sql.DriverManager請求並獲得Connection對象,該對象就代表一個數據庫的連接。
?使用DriverManager的getConnectin(String url,String username,String password )方法傳入指定的欲連接的數據庫的路徑、數據庫的用戶名和密碼來獲得。
例如:
//連接MySql數據庫,用戶名和密碼都是root
String url = “jdbc:mysql://localhost:3306/test” ;
String username = “root” ;
String password = “root” ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println(“數據庫連接失敗!”);
se.printStackTrace() ;
}
4、創建一個Statement
?要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行數據庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall(“{CALL demoSp(? , ?)}”) ;
5、執行SQL語句
Statement接口提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute
1、ResultSet executeQuery(String sqlString):執行查詢數據庫的SQL語句,返回一個結果集(ResultSet)對象。
2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的語句。
具體實現的代碼:
ResultSet rs = stmt.executeQuery(“SELECT * FROM …”) ;
int rows = stmt.executeUpdate(“INSERT INTO …”) ;
boolean flag = stmt.execute(String sql) ;
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些行中數據的訪問。
使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString(“name”) ;
String pass = rs.getString(1); // 此方法比較高效(列是從左到右編號的,並且從列1開始)
}
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
怎麼使用JAVA連接數據庫?
1、加載驅動程序。
2、創建連接對象。
3、創建sql語句執行對象 。
4、執行sql語句。
5、對執行結果進行處理。
6、關閉相關的連接對象即可(順序跟聲明的順序相反)。
處理結果兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些 行中數據的訪問。
擴展資料:
Statement
要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行數據庫存儲過程。通常通過CallableStatement實例實現。
參考資料:百度百科JAVA
java讀取TXT文件然後插入數據庫,怎麼做
用IO讀取文本文件,建議參看java.io包中FileInputStream類與InputStreamReader類的API文檔。
用FileInputStream載入文件,
然後用InputStreamReader封裝FileInputStream對象,
然後用InputStreamReader的read方法讀取字符串,注意字符編碼問題。
讀取成字符串之後,操作字符串,先分行,得到不同網站的數據
再在行中分段,分別檢出Name、url、status部分,
然後插入數據庫即可
如果會的話,字符串操作可以使用正則表達式。
不會的話,就用笨辦法,循環套if else來檢出所需要的數據。
主要就是IO操作與字符串操作。
java怎樣將讀取數據寫入數據庫
就要鏈接數據庫,可以通過JDBC鏈接。
首先,在連接數據庫之前必須保證SQL Server 2012是採用SQL Server身份驗證方式而不是windows身份驗證方式,開始如下配置:
一、因為SQL Server 2012裝好後,默認協議是沒有開啟的,所以要打開SQL Server配置管理器中開啟。
1、安裝好SQL Server 2012後,運行 開始 → 所有程序 → Microsoft SQL Server 2012 → 配置工具 →SQL Server配置管理器
2、在左邊欄找到 SQL Server網絡配置選項,點開它的小箭頭,會看到“【你的數據庫名】的協議” (圖中是ERIC2012的協議),選中它,看右邊欄。
(1)如果Named Pipes 未啟用,則右鍵→啟用
(2)右鍵單擊 TCP/IP,選擇 啟用
(3)雙擊TCP/IP(右鍵→屬性),在彈出的窗口中選擇 “IP地址” 選項卡,將IP1和IP10的【IP地址】設為127.0.0.1,並將所有【IPx】的【已啟用】設為是。接着,拖動下拉條到最下方,將 IPAll 中的【TCP端口】設成 【1433】,其餘不變。
3、重新啟動計算機。
4、接下來使用telnet命令測試1433端口是否打開。首先要保證telnet服務開啟。
5、完成上一步後。開始菜單 → 運行cmd → 輸入:telnet 127.0.0.1 1433,(注意telnet與127之間有空格,1與1433之間有空格)。
6、若提示“不能打開到主機的連接,在端口 1433: 連接失敗”,則說明1433端口沒有打開,需要重新進行以上配置。
java中怎麼向數據庫插入數據 ?
Java程序向數據庫中插入數據,代碼如下:
//首先創建數據庫,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置數據源(odbc);
//然後再eclipse中創建類(ConnDb,Test,TestBean)ConnDb功能為連接數據庫,查詢,插入,刪除,修改數據的類,Test為含有main方法的測試類,TestBean為數據表中的字段屬性及set,get方法
//以下是ConnDb代碼:
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import
java.sql.ResultSet;
import java.sql.SQLException;
import
java.sql.Statement;
import java.util.ArrayList;
public class ConnDb {
public Connection startConn(Connection conn){
try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
conn = DriverManager.getConnection(“jdbc:odbc:數據庫”,”用戶名”, “密碼”);
} catch (Exception e) {
System.out.println(“連接數據庫時出現錯誤”);
}
return conn;
}
public ArrayList executeQuery(String sql){
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ArrayList list = new ArrayList();
try {
conn = startConn(conn);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);//sql為sql語句例如”select * from
表名”,從main方法中傳進來,這裡用的是ArrayList 類將查詢結果存儲起來
while(rs.next()){
TestBean tb = new TestBean();
tb.setTid(rs.getString(“tid”));
tb.setTname(rs.getString(“tname”));
tb.setTinfo(rs.getString(“tinfo”));
list.add(tb);
}
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
closeConn(rs,stmt,conn);
}
return list;
}
public void executeUpdate(String sql){
Connection conn = null;
Statement stmt = null;
try {
conn =
startConn(conn);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
}
catch (SQLException e) {
System.out.println(“修改,插入或者刪除數據庫數據時發生錯誤!”);
}finally{
closeConn(stmt,conn);
}
}
public void closeConn(ResultSet rs,Statement stmt,Connection conn){
try {
if(rs !=
null){
rs.close();
}
if(stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
}
catch (SQLException e) {
// TODO Auto-generated catch
block
System.out.println(“關閉數據庫的時候發生錯誤!”);
}
}
public void closeConn(Statement stmt,Connection conn){
try {
if(stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
}
catch (SQLException e) {
// TODO Auto-generated catch block
System.out.println(“關閉數據庫的時候發生錯誤!”);
}
}
}
java向數據庫插入數據時的錯誤: Duplicate entry ” for key ‘PRIMARY’ 是什麼問題,怎麼解決,先謝啦!
是代碼輸入錯誤造成的,解決方法如下:
1、需要重新配置數據庫,首找到數據庫安裝目錄下的MySQLInstanceConfig.exe,雙擊打開。
2、打開之後,前面步驟默認就行,到了圖片所示的地方,修改字符集為utf-8。
3、然後點擊下一步,如下圖所示。
4、最後重啟數據庫。在代碼中連接數據庫部分加上?characterEncoding=utf8,這樣問題就解決了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301072.html