真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)據(jù)入口java代碼 Java程序入口

如何將數(shù)據(jù)庫連接到j(luò)ava程序中,詳細(xì)一點(diǎn)的代碼有么

這是連接池的:

鶴山網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

public class BaseDao {

protected Connection conn=null;

protected PreparedStatement ps=null;

protected ResultSet rs=null;

//獲取連接

protected void openConnection(){

try{

//初始化連接池

Context ctx=new InitialContext();

//數(shù)據(jù)源

DataSource ds=(DataSource) ctx.lookup("java:comp/env/jdbc/news");

//獲取連接

conn=ds.getConnection();

}catch(NamingException e){

e.printStackTrace();

}catch(SQLException e){

e.printStackTrace();

}

}

//關(guān)閉連接

protected void closeResource(){

try{

if(rs!=null){

rs.close();

}

if(ps!=null){

ps.close();

}

if(conn!=null){

conn.close();

}

}catch(SQLException e){

e.printStackTrace();

}

}

其他類需要使用數(shù)據(jù)庫操作,繼承這個(gè)類就就行了,這是最基礎(chǔ)的。

java連接數(shù)據(jù)庫的代碼

用這個(gè)類吧.好的話,給我加加分.

import java.sql.*;

/**

* @功能: 一個(gè)JDBC的本地化API連接類,封裝了數(shù)據(jù)操作方法,只用傳一個(gè)SQL語句即可

* @作者: 李開歡

* @日期: 2007/

*/

public class ConnectionDemo {

/*

* 這里可以將常量全部放入另一個(gè)類中,以方便修改

*/

private static Connection conn;

private static Statement ps;

private static ResultSet rs;

private static final String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

private static final String URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";

private static final String USER ="sa";

private static final String PASS = "sa";

public ConnectionDemo() {

// TODO Auto-generated constructor stub

ConnectionDemo.getConnection();

}

public static Connection getConnection(){

System.out.println("連接中...");

try {

Class.forName(ConnectionDemo.DRIVER);

conn = DriverManager.getConnection(ConnectionDemo.URL, ConnectionDemo.USER, ConnectionDemo.PASS);

System.out.println("成功連接");

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return conn;

}

public static Statement getStatement(String sql){

System.out.println("執(zhí)行SQL語句中...");

try {

ps = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

if(sql.substring(0, 6).equals("select")){

rs = ps.executeQuery(sql);

System.out.println("執(zhí)行完查詢操作,結(jié)果已返回ResultSet集合");

}else if(sql.substring(0, 6).equals("delete")){

ps.executeUpdate(sql);

System.out.println("已執(zhí)行完畢刪除操作");

}else if(sql.substring(0, 6).equals("insert")){

ps.executeUpdate(sql);

System.out.println("已執(zhí)行完畢增加操作");

}else{

ps.executeUpdate(sql);

System.out.println("已執(zhí)行完畢更新操作");

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return ps;

}

public static ResultSet getResultSet(){

System.out.println("查詢結(jié)果為:");

return rs;

}

public static void closeConnection(){

System.out.println("關(guān)閉連接中...");

try {

if (rs != null) {

rs.close();

System.out.println("已關(guān)閉ResultSet");

}

if (ps != null) {

ps.close();

System.out.println("已關(guān)閉Statement");

}

if (conn != null) {

conn.close();

System.out.println("已關(guān)閉Connection");

}

} catch (Exception e) {

// TODO: handle exception

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

ConnectionDemo.getConnection();

String sql = "delete from type where id = 1";

ConnectionDemo.getStatement(sql);

String sql2 = "insert into type values(1,'教學(xué)設(shè)備')";

ConnectionDemo.getStatement(sql2);

String sql1 = "select * from type";

ConnectionDemo.getStatement(sql1);

ResultSet rs = ConnectionDemo.getResultSet();

System.out.println("編號(hào) "+"類 型");

try {

while(rs.next()){

System.out.print(" "+rs.getInt(1)+" ");

System.out.println(rs.getString(2));

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

ConnectionDemo.closeConnection();

}

}

怎樣用java代碼把數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中

Java可以使用JDBC對(duì)數(shù)據(jù)庫進(jìn)行讀寫。JDBC訪問一般分為如下流程:

1、加載JDBC驅(qū)動(dòng)程序:

在連接數(shù)據(jù)庫之前,首先要加載想要連接的數(shù)據(jù)庫的驅(qū)動(dòng)到JVM(Java虛擬機(jī)),

這通過java.lang.Class類的靜態(tài)方法forName(String className)實(shí)現(xiàn)。

例如:

try{

//加載MySql的驅(qū)動(dòng)類

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

}catch(ClassNotFoundException e){

System.out.println("找不到驅(qū)動(dòng)程序類 ,加載驅(qū)動(dòng)失??!");

e.printStackTrace() ;

}

成功加載后,會(huì)將Driver類的實(shí)例注冊(cè)到DriverManager類中。

2、提供JDBC連接的URL

?連接URL定義了連接數(shù)據(jù)庫時(shí)的協(xié)議、子協(xié)議、數(shù)據(jù)源標(biāo)識(shí)。

?書寫形式:協(xié)議:子協(xié)議:數(shù)據(jù)源標(biāo)識(shí)

協(xié)議:在JDBC中總是以jdbc開始

子協(xié)議:是橋連接的驅(qū)動(dòng)程序或是數(shù)據(jù)庫管理系統(tǒng)名稱。

數(shù)據(jù)源標(biāo)識(shí):標(biāo)記找到數(shù)據(jù)庫來源的地址與連接端口。

例如:(MySql的連接URL)

jdbc:mysql://localhost:3306/test?useUnicode=truecharacterEncoding=gbk ;

useUnicode=true:表示使用Unicode字符集。如果characterEncoding設(shè)置為

gb2312或GBK,本參數(shù)必須設(shè)置為true 。characterEncoding=gbk:字符編碼方式。

3、創(chuàng)建數(shù)據(jù)庫的連接

?要連接數(shù)據(jù)庫,需要向java.sql.DriverManager請(qǐng)求并獲得Connection對(duì)象,該對(duì)象就代表一個(gè)數(shù)據(jù)庫的連接。

?使用DriverManager的getConnectin(String url,String username,String password )方法傳入指定的欲連接的數(shù)據(jù)庫的路徑、數(shù)據(jù)庫的用戶名和密碼來獲得。

例如:

//連接MySql數(shù)據(jù)庫,用戶名和密碼都是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("數(shù)據(jù)庫連接失敗!");

se.printStackTrace() ;

}

4、創(chuàng)建一個(gè)Statement

?要執(zhí)行SQL語句,必須獲得java.sql.Statement實(shí)例,Statement實(shí)例分為以下3種類型:

1、執(zhí)行靜態(tài)SQL語句。通常通過Statement實(shí)例實(shí)現(xiàn)。

2、執(zhí)行動(dòng)態(tài)SQL語句。通常通過PreparedStatement實(shí)例實(shí)現(xiàn)。

3、執(zhí)行數(shù)據(jù)庫存儲(chǔ)過程。通常通過CallableStatement實(shí)例實(shí)現(xiàn)。

具體的實(shí)現(xiàn)方式:

Statement stmt = con.createStatement() ;

PreparedStatement pstmt = con.prepareStatement(sql) ;

CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;

5、執(zhí)行SQL語句

Statement接口提供了三種執(zhí)行SQL語句的方法:executeQuery 、executeUpdate和execute

1、ResultSet executeQuery(String sqlString):執(zhí)行查詢數(shù)據(jù)庫的SQL語句,返回一個(gè)結(jié)果集(ResultSet)對(duì)象。

2、int executeUpdate(String sqlString):用于執(zhí)行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等

3、execute(sqlString):用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語句。

具體實(shí)現(xiàn)的代碼:

ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;

int rows = stmt.executeUpdate("INSERT INTO ...") ;

boolean flag = stmt.execute(String sql) ;

6、處理結(jié)果

兩種情況:

1、執(zhí)行更新返回的是本次操作影響到的記錄數(shù)。

2、執(zhí)行查詢返回的結(jié)果是一個(gè)ResultSet對(duì)象。

ResultSet包含符合SQL語句中條件的所有行,并且它通過一套get方法提供了對(duì)這些行中數(shù)據(jù)的訪問。

使用結(jié)果集(ResultSet)對(duì)象的訪問方法獲取數(shù)據(jù):

while(rs.next()){

String name = rs.getString("name") ;

String pass = rs.getString(1); // 此方法比較高效(列是從左到右編號(hào)的,并且從列1開始)

}

7、關(guān)閉JDBC對(duì)象

操作完成以后要把所有使用的JDBC對(duì)象全都關(guān)閉,以釋放JDBC資源,關(guān)閉順序和聲明順序相反:

1、關(guān)閉記錄集

2、關(guān)閉聲明

3、關(guān)閉連接對(duì)象

if(rs != null){ // 關(guān)閉記錄集

try{

rs.close() ;

}catch(SQLException e){

e.printStackTrace() ;

}

}

if(stmt != null){ // 關(guān)閉聲明

try{

stmt.close() ;

}catch(SQLException e){

e.printStackTrace() ;

}

}

if(conn != null){ // 關(guān)閉連接對(duì)象

try{

conn.close() ;

}catch(SQLException e){

e.printStackTrace() ;

}

}

JAVA嵌入數(shù)據(jù)庫:用java代碼實(shí)現(xiàn)像數(shù)據(jù)庫表中插入信息,怎么寫?

Java程序向數(shù)據(jù)庫中插入數(shù)據(jù),代碼如下:

//首先創(chuàng)建數(shù)據(jù)庫,(access,oracle,mysql,sqlsever)其中之一,其中access,sqlsever需要配置數(shù)據(jù)源(odbc);//然后再eclipse中創(chuàng)建類(ConnDb,Test,TestBean)ConnDb功能為連接數(shù)據(jù)庫,查詢,插入,刪除,修改數(shù)據(jù)的類,Test為含有main方法的測(cè)試類,TestBean為數(shù)據(jù)表中的字段屬性及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:數(shù)據(jù)庫","用戶名", "密碼"); } catch (Exception e) { System.out.println("連接數(shù)據(jù)庫時(shí)出現(xiàn)錯(cuò)誤"); } 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方法中傳進(jìn)來,這里用的是ArrayList 類將查詢結(jié)果存儲(chǔ)起來 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("修改,插入或者刪除數(shù)據(jù)庫數(shù)據(jù)時(shí)發(fā)生錯(cuò)誤!"); }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("關(guān)閉數(shù)據(jù)庫的時(shí)候發(fā)生錯(cuò)誤!"); } } 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("關(guān)閉數(shù)據(jù)庫的時(shí)候發(fā)生錯(cuò)誤!"); } }}

連接數(shù)據(jù)庫的代碼用java怎么做?

import java.sql.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

public class inensshow extends JFrame {

private Connection connection;

private Statement statement;

private ResultSet resultSet;

private ResultSetMetaData rsMetaData;

//GUI變量定義

private JTable table;

private JTextArea inputQuery;

private JButton submitQuery;

public inensshow()

{

//Form的標(biāo)題

super( "輸入SQL語句,按查詢按鈕查看結(jié)果。" );

String url = "jdbc:mysql://localhost:3306/web";

String username = "inens";

String password = "inens";

//加載驅(qū)動(dòng)程序以連接數(shù)據(jù)庫

try {

Class.forName( "org.gjt.mm.mysql.Driver" );

connection = DriverManager.getConnection(

url, username, password );

}

//捕獲加載驅(qū)動(dòng)程序異常

catch ( ClassNotFoundException cnfex ) {

System.err.println(

"裝載 JDBC/ODBC 驅(qū)動(dòng)程序失敗。" );

cnfex.printStackTrace();

System.exit( 1 ); // terminate program

}

//捕獲連接數(shù)據(jù)庫異常

catch ( SQLException sqlex ) {

System.err.println( "無法連接數(shù)據(jù)庫" );

sqlex.printStackTrace();

System.exit( 1 ); // terminate program

}

//如果數(shù)據(jù)庫連接成功,則建立GUI

//SQL語句

String test="SELECT * FROM data";

inputQuery = new JTextArea( test, 4, 30 );

submitQuery = new JButton( "查詢" );

//Button事件

submitQuery.addActionListener(

new ActionListener() {

public void actionPerformed( ActionEvent e )

{

getTable();

}

}

);

JPanel topPanel = new JPanel();

topPanel.setLayout( new BorderLayout() );

//將"輸入查詢"編輯框布置到 "CENTER"

topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER );

//將"提交查詢"按鈕布置到 "SOUTH"

topPanel.add( submitQuery, BorderLayout.SOUTH );

table = new JTable();

Container c = getContentPane();

c.setLayout( new BorderLayout() );

//將"topPanel"編輯框布置到 "NORTH"

c.add( topPanel, BorderLayout.NORTH );

//將"table"編輯框布置到 "CENTER"

c.add( table, BorderLayout.CENTER );

getTable();

setSize( 500, 300 );

//顯示Form

show();

}

private void getTable()

{

try {

//執(zhí)行SQL語句

String query = inputQuery.getText();

statement = connection.createStatement();

resultSet = statement.executeQuery( query );

//在表格中顯示查詢結(jié)果

displayResultSet( resultSet );

}

catch ( SQLException sqlex ) {

sqlex.printStackTrace();

}

}

private void displayResultSet( ResultSet rs )

throws SQLException

{

//定位到達(dá)第一條記錄

boolean moreRecords = rs.next();

//如果沒有記錄,則提示一條消息

if ( ! moreRecords ) {

JOptionPane.showMessageDialog( this,

"結(jié)果集中無記錄" );

setTitle( "無記錄顯示" );

return;

}

Vector columnHeads = new Vector();

Vector rows = new Vector();

try {

//獲取字段的名稱

ResultSetMetaData rsmd = rs.getMetaData();

for ( int i = 1; i = rsmd.getColumnCount(); ++i )

columnHeads.addElement( rsmd.getColumnName( i ) );

//獲取記錄集

do {

rows.addElement( getNextRow( rs, rsmd ) );

} while ( rs.next() );

//在表格中顯示查詢結(jié)果

table = new JTable( rows, columnHeads );

JScrollPane scroller = new JScrollPane( table );

Container c = getContentPane();

c.remove(1);

c.add( scroller, BorderLayout.CENTER );

//刷新Table

c.validate();

}

catch ( SQLException sqlex ) {

sqlex.printStackTrace();

}

}

private Vector getNextRow( ResultSet rs,

ResultSetMetaData rsmd )

throws SQLException

{

Vector currentRow = new Vector();

for ( int i = 1; i = rsmd.getColumnCount(); ++i )

currentRow.addElement( rs.getString( i ) );

//返回一條記錄

return currentRow;

}

public void shutDown()

{

try {

//斷開數(shù)據(jù)庫連接

connection.close();

}

catch ( SQLException sqlex ) {

System.err.println( "Unable to disconnect" );

sqlex.printStackTrace();

}

}

public static void main( String args[] )

{

final inensshow app =

new inensshow();

app.addWindowListener(

new WindowAdapter() {

public void windowClosing( WindowEvent e )

{

app.shutDown();

System.exit( 0 );

}

}

);

}

}

------------------------------------------------------------

這次在WIN98中就不好使了。因?yàn)镸ysql的驅(qū)動(dòng)程序沒有也沒能加入到CLASSPATH 當(dāng)中,但是JSP卻可以使用(JSP的98驅(qū)動(dòng)加載詳見Jsp與Mysql連接查錯(cuò)文章),所以這次我是在XPServer中測(cè)試的。


標(biāo)題名稱:數(shù)據(jù)入口java代碼 Java程序入口
本文網(wǎng)址:http://weahome.cn/article/hgosce.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部