java數據庫源代碼 java類庫源碼

用JAVA編程的通過SQL連接數據庫的商品庫存管理系統(tǒng)的源代碼

package com.company.dao;

創(chuàng)新互聯(lián)建站主要為客戶提供服務項目涵蓋了網頁視覺設計、VI標志設計、全網營銷推廣、網站程序開發(fā)、HTML5響應式網站建設公司成都做手機網站、微商城、網站托管及成都企業(yè)網站維護、WEB系統(tǒng)開發(fā)、域名注冊、國內外服務器租用、視頻、平面設計、SEO優(yōu)化排名。設計、前端、后端三個建站步驟的完善服務體系。一人跟蹤測試的建站服務標準。已經為崗亭行業(yè)客戶提供了網站建設服務。

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class BaseDao {

// 數據庫驅動

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

//url

String url = "jdbc:sqlserver://數據庫ip:端口號;databaseName=數據庫名;";

//用戶名

String uname = "數據庫用戶名";

//密碼

String pwd = "數據庫密碼";

/**

* 獲得連接對象

* @return

*/

protected Connection getCon(){

//返回的連接

Connection con = null;

try {

//載入驅動

Class.forName(driver);

//得到連接

con = DriverManager.getConnection(url, uname, pwd);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return con;

}

/**

* 關閉數據庫

* @param con

* @param stmt

* @param rs

*/

protected void closeDB(Connection con, Statement stmt, ResultSet rs){

if(rs != null){

try {

//關閉結果集

rs.close();

rs = null;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(stmt != null){

try {

//關閉語句對象

stmt.close();

stmt = null;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if(con != null){

try {

//關閉連接對象

con.close();

con = null;

} catch (SQLException e) {

e.printStackTrace();

}

}

}

protected void closeDB(Connection con, PreparedStatement pstmt, ResultSet rs){

if(rs != null){

//關閉結果集

try {

rs.close();

rs = null;

} catch (SQLException e) {

e.printStackTrace();

}

}

if(pstmt != null){

try {

pstmt.close();

pstmt = null;

} catch (SQLException e) {

e.printStackTrace();

}

}

if(con != null){

try {

con.close();

con = null;

} catch (SQLException e) {

e.printStackTrace();

}

}

}

這個是我寫的一個基本的連接sql2005數據庫的代碼,.! 不知道你能不能用,! 你看一下吧, 連接的時候需要sqljdbc.jar數據庫驅動,!

求JAVA源代碼

我用了半個小時 幫你寫了一個簡單的驗證用戶名和密碼登陸問題 別辜負我的好意 下面是代碼!(建好包和類 代碼粘過去就能用)

實體類 包entity

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

package entity;

/**

* 用戶實體類

* @author new

*

*/

public class Users {

private String name;//用戶名

private String pass;//用戶密碼

/**

* 空的構造函數 用戶實力化 此類對象

*/

public Users(){

}

/**

* 構造函數 接收用戶名和密碼

* @param name

* @param pass

*/

public Users(String name, String pass) {

this.name = name;

this.pass = pass;

}

/**

* 下面set和get方法就不用解釋了吧

* @return

*/

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPass() {

return pass;

}

public void setPass(String pass) {

this.pass = pass;

}

}

數據庫類 包dao(我是模擬一下數據庫 沒有用到數據庫)

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

package dao;

import java.util.*;

import entity.Users;//導入實體類

/**

* 模擬數據庫 用戶DAO

* @author new

*

*/

public class UsersDAO {

private static Users users=new Users();

static

{

users.setName("tom");

users.setPass("jerry");

}

/**

* 根據姓名查找這個用戶 (模擬一下數據庫)

* @param name

* @return

*/

public Users findUserByName(String name)

{

if(name.equals(this.users.getName()))

{

return this.users;

}

return null;

}

}

業(yè)務類 包service (驗證用戶名和密碼)

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

package service;

import dao.UsersDAO;

import entity.Users;

/**

* 驗證密碼 業(yè)務類

* @author new

*

*/

public class validatePass {

//實力化DAO對象

private UsersDAO us=new UsersDAO();

/**

* 驗證輸入的密碼是否正確

* @param name

* @param pass

* @return

*/

public Users validate(String name,String pass)

{

Users user=null;

user=us.findUserByName(name);

//如果不為空 說明查到了

if(user!=null)

{

//用查詢出來對象的密碼和傳過來的密碼比較

if(user.getPass().equals(pass))

{

return user;

}

}

return null;

}

}

最后是測試test類 包test

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

package test;

import entity.Users;

import service.validatePass;

/**

* 測試類

* @author new

*

*/

public class test {

/**

* main方法 用于測試

* @param args

*/

public static void main(String[] args)

{

//實例化業(yè)務類對象

validatePass v=new validatePass();

//用戶名和密碼

String name="tom";

String pass="jerry";

//開始驗證

Users user=v.validate(name, pass);

if(user==null)

{

System.out.println("你輸入的用戶名或密碼錯誤!");

}else

{

System.out.println("你已經通過驗證,成功登陸!");

}

}

}

誰有JAVA按條件查詢數據庫內容并顯示出來的源代碼 能給我看下嗎???謝謝啦 本人新手~

1.用jdbc連接數據庫

public class DBConn {

private Connection con;

public Connection DBConn() {

//連接數據庫的屬性

String driver="sun.jdbc.odbc.JdbcOdbcDriver";

//獲得數據庫的真實路徑

String dburl = String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""));

dburl = dburl + "lyb.mdb";//得到文件的URL: 'file:/C:\...'

dburl = dburl.substring(dburl.indexOf("/")+1);//去掉'file:/'

//dburl.replaceAll("%20"," ");

System.out.println("dburl :"+dburl);//測試用,運行的時候顯示絕對路徑

dburl="E:/lyb/WebRoot/WEB-INF/classes/lyb.mdb";

String accessUrl="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dburl;

try{

Class.forName(driver);

con = DriverManager.getConnection(accessUrl);

}catch(Exception e){

e.printStackTrace();

}

return con;

}

}

2.比如查詢數據庫中的record表,record表中存放的是實體MessageVO.

public Collection getMessage() throws Exception{

//SQL語句,從record里面獲得所有數據

String getLy="select count(*) from record";

String getLy1="select * from record order by id desc";

Collection ret=new ArrayList();

try{

if(con==null) System.out.println("con=null");

Statement stm=con.createStatement();

ResultSet res=stm.executeQuery(getLy);

int msg_count=0;

if(res.next()){

msg_count=res.getInt(1);

res.close();

}

if(msg_count0){

res=stm.executeQuery(getLy1);

while(res.next()){

int id=res.getInt("id");

String title=res.getString("title");

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

String email=res.getString("email");

String content=res.getString("content");

java.sql.Timestamp ts=res.getTimestamp("ly_date");

java.sql.Date date=new java.sql.Date(ts.getTime());

//System.out.println(date);

MessageVO message=new MessageVO();

message.setId(id);

message.setTitle(title);

message.setName(name);

message.setEmail(email);

message.setContent(content);

message.setDate(date);

ret.add(message);

}

res.close();

stm.close();

}

con.close();

}catch(Exception e){

e.printStackTrace();

throw e;

}

return ret;

}

(高分)急求連接數據庫的JAVA學生信息管理系統(tǒng)源代碼

數據庫連接(Connection)

數據庫連接

獲取數據庫連接有兩種方法,一種是通過驅動程序管理器DriverManager類,另一種則是使用DataSource接口。這兩種方法都提供了了一個getConnection方法,用戶可以在程序中對它們進行相應處理后調用這個方法來返回數據庫連接。

? DriverManager類

? DataSource接口

? Connection接口

? JDBC URL

jdbc:subprotocol:subname

? 驅動程序注冊方法

(1)調用Class.forName方法

(2)設置jdbc.drivers系統(tǒng)屬性

? DriverManager方法

DriverManager類中的所有方法都是靜態(tài)方法,所以使用DriverManager類的方法時,不必生成實例。

DriverManager

? getConnection方法

作用是用于獲取數據庫連接,原型如下:

public static Connection getConnection(String url)

throws SQLException;

public static Connection getConnection(String url, String user, String password)

throws SQLException;

public static Connection getConnection(String url, Properties info)

throws SQLException;

? 使用DriverManager的getConnetion方法

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection conn = DriverManager.getConnection

("jdbc:odbc:sqlserver", "sa", "sa");

? 使用設置jdbc.drivers系統(tǒng)屬性的方法

java -Djdbc.drivers=sun.jdbc.odbc.JdbcOdbcDriver test.java

DataSource 接口

……

//從上下文中查找數據源,并獲取數據庫連接

Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("sqlserver");

Connection conn = ds.getConnection();

//查詢數據庫中所有記錄

Statement stmt = conn.createStatement();

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

……

Connection 接口

Connection接口代表了已經建立的數據庫連接,它是整個JDBC的核心內容。Connnection接口中的方法按照它們所實現的功能,可以分為三類:

? 生成數據庫語句

? 管理數據庫事務

? 獲取數據庫信息

生成數據庫語句

JDBC將數據庫語句分成三種類型 :

? 生成Statement 語句 :

Connection.createStatement()

? 生成PreparedStatement 語句 :

Connection. prepareStatement()

? 生成CallableStatement 語句 :

Connection. prepareCall ()

管理數據庫事務

? 默認情況下,JDBC將一條數據庫語句視為一個完整的事務。可以關掉默認事務管理:

public void setAutoCommit(Boolean autoCommit) throws SQLException;

將autoCommit的值設置為false,就關掉了自動事務管理模式

? 在執(zhí)行完事務后,應提交事務:

public void commit() throws SQLException;

? 可以取消事務:

public void rollback() throws SQLException;

第二講 第四部分

數據庫語句

數據庫語句

JDBC數據庫語句共有三種類型:

? Statement:

Statement語句主要用于嵌入一般的SQL語句,包括查詢、更新、插入和刪除等等。

? PreparedStatement:

PreparedStatement語句稱為準備語句,它是將SQL語句中的某些參數暫不指定,而等到執(zhí)行時在統(tǒng)一指定。

? CallableStatement:

CallableStatement用于執(zhí)行數據庫的存儲過程。

Statement 語句

? executeQuery方法

? executeUpdate方法

? execute方法

? close方法

executeQuery方法

? executeQuery方法主要用于執(zhí)行產生單個結果集的SQL查詢語句(QL),即SELECT語句。executeQuery方法的原型如下所示:

? public ResultSet executeQuery(String sql) throws SQLException;

executeUpdate方法

? executeUpdate方法主要用于執(zhí)行 INSERT、UPDATE、DELETE語句,即SQL的數據操作語句(DML)

? executeUpdate方法也可以執(zhí)行類似于CREATE TABLE和DROP TABLE語句的SQL數據定義語言(DDL)語句

? executeUpdate方法的返回值是一個整數,指示受影響的行數(即更新計數)。而對于CREATE TABLE 或 DROP TABLE等并不操作特定行的語句,executeUpdate的返回值總為零。

execute方法

execute方法用于執(zhí)行:

? 返回多個結果集

? 多個更新計數

? 或二者組合的語句

execute方法

? 返回多個結果集:首先要調用getResultSet方法獲得第一個結果集,然后調用適當的getter方法獲取其中的值。要獲得第二個結果集,需要先調用getMoreResults方法,然后再調用getResultSet方法。

? 返回多個更新計數:首先要調用getUpdateCount方法獲得第一更新計數。然后調用getMoreResults,并再次調用getUpdateCount獲得后面的更新計數。

? 不知道返回內容:如果結果是ResultSet對象,則execute方法返回true;如果結果是int類型,則意味著結果是更新計數或執(zhí)行的語句是DDL命令。

execute方法

為了說明如果處理execute方法返回的結果,下面舉一個代碼例子:

stmt.execute(query);

while (true) {

int row = stmt.getUpdateCount();

//如果是更新計數

if (row 0) {

System.out.println("更新的行數是:" + row);

stmt.getMoreResults();

continue;

}

execute方法

//如果是DDL命令或0個更新

if (row == 0) {

System.out.println("沒有更新,或SQL語句是一條DDL語句!");

stmt.getMoreResults();

continue;

}

//如果是一個結果集

ResultSet rs = stmt.getResultSet;

if (rs != null) {

while (rs.next()) {

// 處理結果集

. . .

}

stmt.getMoreResults();

continue;

}

break;

}

PreparedStatement 語句

登錄一個網站或BBS時 :

? 使用Statement語句

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery

(“SELECT password FROM userinfo

WHERE id=userId");

? 使用PreparedStatement語句

PreparedStatement pstmt=conn.prepareStatement

(“SELECT password FROM userinfo

WHERE id=?");

pstmt.setString(1, userId);

PreparedStatement語句

? 常用的setter方法

public void setBoolean(int parameterIndex, boolean x) throws SQLException;

public void setByte(int parameterIndex, byte x) throws SQLException;

public void setShort(int parameterIndex, short x) throws SQLException;

public void setInt(int parameterIndex,int x) throws SQLException;

public void setLong(int parameterIndex, long x) throws SQLException;

public void setFloat(int parameterIndex, float x) throws SQLException;

public void setDouble(int parameterIndex, double x) throws SQLException;

public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException;

public void setString(int parameterIndex, String x) throws SQLException;

public void setBytes(int parameterIndex, byte[] x) throws SQLException;

public void setDate(int parameterIndex, Date x) throws SQLException;

public void setTime(int parameterIndex, Time x) hrows SQLException;

public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException;

PreparedStatement語句

? PreparedStatement接口是由Statement接口擴展而來的,重寫了executeQuery方法、executeUpdate方法和execute 方法

? public ResultSet executeQuery() throws SQLException

? public int executeUpdate() throws SQLException

? public boolean execute() throws SQLException

CallableStatement語句

? CallableStatement語句是由Connection接口的prepareCall方法創(chuàng)建的,創(chuàng)建時需要傳入字符串參數,參數的形式為:

? {call procedure_name[(?, ?, ...)]}

? {? = call procedure_name[(?, ?, ...)]}

? {call procedure_name}

CallableStatement語句

? 其中的問號是參數占位符,參數共有兩種:

? IN參數

? OUT參數

? IN參數使用setter方法來設置

? OUT參數則使用registerOutParameter方法來設置

CallableStatement 語句

CallableStatement cstmt = con.prepareCall

("{call getTestData(?, ?)}");

cstmt.registerOutParameter

(1, java.sql.Types.TINYINT);

cstmt.registerOutParameter

(2, java.sql.Types.DECIMAL, 3);

cstmt.executeQuery();

byte x = cstmt.getByte(1);

java.math.BigDecimal n =

cstmt.getBigDecimal(2, 3);

第二講 第五部分

結 果 集

結果集

? JDBC為了方便處理查詢結果,又專門定義了一個接口,這個接口就是ResultSet接口。ResultSet接口提供了可以訪問數據庫查詢結果的方法,通常稱這個接口所指向的對象為結果集。

? 有兩種方法得到結果集,一種是直接執(zhí)行查詢語句,將結果存儲在結果集對象上;另一種是不存儲返回結果,而在需要時調用數據庫語句的getResultSet方法來返回結果集

結果集

? 結果集指針

由于返回的結果集可能包含多條數據記錄,因此ResultSet 接口提供了對結果集的所有數據記錄輪詢的方法。結果集自動維護了一個指向當前數據記錄的指針,初始時這個指針是指向第一行的前一個位置。 next 方法就是用于向前移動指針的

結果集

? 結果集屬性

默認情況下,結果集是一個不可更新集,并且結果集的指針也只能向前移動。也就是說,在得到了一個結果集之后,用戶只能按照從第一條記錄到最后一條記錄的順序依次向后讀取,而不能跳到任意條記錄上,也不能返回到前面的記錄。不僅如此,結果集的這種輪詢只能進行一次,而不能再將指針重置到初始位置進行多次輪詢

結果集

? 結果集屬性

類型

并發(fā)性

有效性

? 屬性的設置是在生成數據庫語句時通過向生成方法傳入相應的參數設定的,而當結果集已經返回時就不能夠再改變它的屬性了。

結果集生成Statement語句共有三種方法

public Statement createStatement() throws SQLException;

public Statement createStatement

(int resultSetType, int resultSetConcurrency)

throws SQLException;

public Statement createStatement

(int resultSetType, int resultSetConcurrency,

int resultSetHoldability)

throws SQLException;

結果集

? 生成PreparedStatement語句共有六種方法

public PreparedStatement prepareStatement(String sql) throws SQLException;

public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)

throws SQLException;

public PreparedStatement prepareStatement(String sql, int[] columnIndexes)

throws SQLException;

public PreparedStatement prepareStatement(String sql, int resultSetType,

int resultSetConcurrency)

throws SQLException;

public PreparedStatement prepareStatement(String sql, int resultSetType,

int resultSetConcurrency,

int resultSetHoldability)

throws SQLException;

public PreparedStatement prepareStatement(String sql. String[] columnNames)

throws SQLException;

結果集

? 生成CallableStatement語句共有三種方法

public CallableStatement prepareCall(String sql)

throws SQLException;

public CallableStatement prepareCall

(String sql, int resultSetType,

int resultSetConcurrency)

throws SQLException;

public CallableStatement prepareCall

(String sql, int resultSetType,

int resultSetConcurrency,

int resultSetHoldability)

throws SQLException;

結果集

結果集類型

? 結果集的類型共有三種,TYPE_FORWARD_ONLY類型的結果集只能向前移動指針,而TYPE_SCROLL_INSENSITIVE類型和TYPE_SCROLL_SENSITIVE類型的結果集則可以任意移動指針。后兩種類型的區(qū)別在于,前者對來自其它處的修改不敏感(靜態(tài)),而后者則對于別人的修改敏感(動態(tài)視圖)。

結果集

結果集類型

? 對于可以任意移動指針的結果集,可以用來移動指針的方法包括:

? next 和previous :

? absolute 和relative :參數可正可負

? afterLast 、beforeFirst 、last 和first :

結果集

結果集并發(fā)性

? 結果集的并發(fā)性共有兩種,CONCUR_READ_ONLY的結果集是只讀而不可更新的;而CONCUR_UPDATABLE的結果集則是可以通過update方法進行更新的。

? ResultSet接口提供了一組update方法,用于更新結果集中的數據。這些方法與PreparedStatement接口中定義的setter方法一樣,也是與類型相對應的。所有的update方法都以update開頭 。

? 所有的update方法都有兩個參數,第一個參數用于指定更新的列,它可以是列名稱也可以是列的序號;第二個參數則表示將要更新列的值。

結果集

結果集并發(fā)性

? Statement stmt = conn.createStatement

? (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

? ResultSet rs = stmt.executeQuery("SELECT * FROM student " +

? "WHERE grade=2 AND math60 AND physics60 AND " +

? "chemistry60 AND english60 AND chinese60");

? while(rs.next()){

? rs.updateString("grade", "3");

? rs.updateRow();

? }

結果集

結果集有效性

? 結果集的有效性是指在調用了Connection 接口的commit 方法后,結果集是否自動關閉。所以它只有兩個可選值,即HOLD_CURSORS_OVER_COMMIT 和CLOSE_CURSORS_AT_COMMIT 。前者表示調用commit 方法之后,結果集不關閉;而后者則表示關閉結果集。

結果結果集

? 結果集的getter方法

ResultSet接口還提供了一組getter方法,用于返回當前記錄的屬性值。它們都是以get開頭的,后接數據類型。比如,如果要返回一個float類型的列值,則應調用getFloat方法。每一種類型的getter方法都有兩種形式,它們的名稱相同而參數不同。這兩種形式的getter方法都只有一個參數,第一種形式的getter方法參數是String類型的,用于指定列的名稱;另外一種形式的getter方法參數則是int類型的,用于指定列的序號。

急求java學生信息管理系統(tǒng)源代碼,帶有連接數據庫的,萬分感謝

import java.awt.BorderLayout;

import java.awt.CardLayout;

import java.awt.Container;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JPanel;

import javax.swing.JToolBar;

import javax.swing.SwingConstants;

public class MainFrame extends JFrame implements ActionListener{

InsertPanel ip = null;

SelectPanel sp = null;

JPanel pframe;

JButton jb1,jb2,jb3;

JMenuItem jm11,jm21,jm22,jm23,jm31,jm32,jm41,jm42;

CardLayout clayout;

public MainFrame(String s){

super(s);

JMenuBar mb = new JMenuBar();

this.setJMenuBar(mb);

JMenu m1 = new JMenu("系統(tǒng)");

JMenu m2 = new JMenu("基本信息");

JMenu m3 = new JMenu("成績");

JMenu m4 = new JMenu("獎懲");

mb.add(m1);

mb.add(m2);

mb.add(m3);

mb.add(m4);

jm11 = new JMenuItem("退出系統(tǒng)");

jm21 = new JMenuItem("輸入");

jm22 = new JMenuItem("查詢");

jm23 = new JMenuItem("更改");

jm31 = new JMenuItem("輸入成績");

jm32 = new JMenuItem("查詢成績");

jm41 = new JMenuItem("獎勵");

jm42 = new JMenuItem("處分");

m1.add(jm11);

m2.add(jm21);

m2.add(jm22);

m2.add(jm23);

m3.add(jm31);

m3.add(jm32);

m4.add(jm41);

m4.add(jm42);

Icon i1 = new ImageIcon();

Icon i2 = new ImageIcon();

Icon i3 = new ImageIcon();

jb1 = new JButton(i1);

jb1.setToolTipText("輸入");

jb2 = new JButton(i2);

jb2.setToolTipText("查詢");

jb3 = new JButton(i3);

jb3.setToolTipText("退出");

JToolBar tb = new JToolBar("系統(tǒng)工具");

tb.add(jb1);

tb.add(jb2);

tb.add(jb3);

add(tb,BorderLayout.NORTH);

jm11.addActionListener(this);

jm21.addActionListener(this);

jm22.addActionListener(this);

jb1.addActionListener(this);

jb2.addActionListener(this);

jb3.addActionListener(this);

clayout = new CardLayout();

pframe = new JPanel(clayout);

add(pframe);

JPanel mainp = new JPanel(new BorderLayout());

JLabel mainl = new JLabel("學生信息管理平臺",SwingConstants.CENTER);

mainl.setFont(new Font("serif",Font.BOLD,30));

mainp.add(mainl);

pframe.add(mainp,"main");

clayout.show(pframe, "main");

}

public void actionPerformed(ActionEvent e){

if(e.getSource() == jm21 || e.getSource() == jb1){

if(ip == null){

ip= new InsertPanel();

pframe.add(ip,"insert");

}

clayout.show(pframe, "insert");

this.setTitle("輸入學生信息");

}

else if(e.getSource() == jm22 || e.getSource() == jb2){

if(sp == null){

sp= new SelectPanel();

pframe.add(sp,"select");

}

clayout.show(pframe, "select");

this.setTitle("查詢學生信息");

}

else if(e.getSource() == jm11 || e.getSource() == jb3){

System.exit(0);

}

}

}

第二個:

import javax.swing.JFrame;

public class MainTest {

public static void main(String [] args){

MainFrame f = new MainFrame("學生信息管理平臺");

f.setSize(400,300);

f.setLocation(350,250);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

第二個:

import java.sql.Connection;

import java.sql.DriverManager;

public class MySQLConnection {

static Connection getCon(){

Connection con = null;

try{

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

con = DriverManager.getConnection("jdbc:mysql://localhost/test","root","123");

}

catch(Exception e){

System.out.println("建立數據庫連接遇到異常!");

}

return con;

}

}

第四個:

import java.awt.BorderLayout;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class SelectPanel extends JPanel implements ActionListener{

JButton jb;

JTextField jt;

JTextField jt1,jt2,jt3,jt4;

public SelectPanel(){

JLabel jl = new JLabel("請輸入學號:",SwingConstants.CENTER);

jt = new JTextField();

jb = new JButton("確定");

JPanel jp1 = new JPanel(new GridLayout(1,3));

jp1.add(jl);

jp1.add(jt);

jp1.add(jb);

JLabel j1,j2,j3,j4;

j1 = new JLabel("學號:",SwingConstants.CENTER);

j2 = new JLabel("姓名:",SwingConstants.CENTER);

j3 = new JLabel("性別:",SwingConstants.CENTER);

j4 = new JLabel("年齡:",SwingConstants.CENTER);

jt1 = new JTextField(6);

jt1.setEditable(false);

jt2 = new JTextField(6);

jt2.setEditable(false);

jt3 = new JTextField(6);

jt3.setEditable(false);

jt4 = new JTextField(6);

jt4.setEditable(false);

JPanel jp2 = new JPanel(new BorderLayout());

JPanel jp3 = new JPanel(new GridLayout(4,2));

jp2.add(new JLabel(""),BorderLayout.NORTH);

jp3.add(j1);

jp3.add(jt1);

jp3.add(j2);

jp3.add(jt2);

jp3.add(j3);

jp3.add(jt3);

jp3.add(j4);

jp3.add(jt4);

jp2.add(jp3);

this.setLayout(new BorderLayout());

add(jp1,BorderLayout.NORTH);

add(jp2);

jb.addActionListener(this);

}

public void actionPerformed(ActionEvent e){

if(e.getSource() == jb){

String stuNo = jt.getText().trim();

Student s = new Student();

boolean b = true;

try{

b = s.selectByStuNo(stuNo);

}

catch(Exception ex){

System.out.println("查詢學生信息遇到異常!");

}

if(b){

jt1.setText(s.getStuNo());

jt2.setText(s.getName());

jt3.setText(s.getGender());

int a = s.getAge();

Integer i = new Integer(a);

jt4.setText(i.toString());

}

else{

JOptionPane.showMessageDialog(null, "無此學生!");

}

}

}

}

第五個:

import javax.swing.JFrame;

public class SelectTest {

public static void main(String [] args){

JFrame f = new JFrame("查詢學生信息");

SelectPanel p = new SelectPanel();

f.add(p);

f.setSize(400,300);

f.setLocation(300,250);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

第六個:

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

public class Student {

String stuNo;

String name;

String gender;

int age;

public Student(){}

public Student(String stuNo,String name,String gender, int age){

this.stuNo = stuNo;

this.name = name;

this.gender = gender;

this.age = age;

}

public String getStuNo(){

return stuNo;

}

public void setStuNo(String stuNo){

this.stuNo = stuNo;

}

public String getName(){

return name;

}

public void setName(String name){

this.name = name;

}

public String getGender(){

return gender;

}

public void setGender(String gender){

this.gender = gender;

}

public int getAge(){

return age;

}

public void setAge(int age){

this.age = age;

}

public boolean insertStudent(){

boolean b = true;

try{

Connection con = MySQLConnection.getCon();

Statement statement = con.createStatement();

String sql = "insert into student values('" + stuNo + "','" + name +"','" + gender + "'," + age + ")";

sql = new String(sql.getBytes("gb2312"),"ISO8859_1");

statement.executeUpdate(sql);

con.close();

}

catch(Exception e){

b = false;

System.out.println("插入數據庫遇到異常!");

}

return b;

}

public boolean selectByStuNo(String stuNo)throws Exception{

boolean b = true;

Connection con = MySQLConnection.getCon();

Statement statement = con.createStatement();

String sql = "select * from student where stuNo =" + stuNo;

ResultSet rs = statement.executeQuery(sql);

if(rs != null rs.next()){

String no = rs.getString(1);

this.setStuNo(no);

String n = rs.getString(2);

n = new String(n.getBytes("ISO8859_1"),"gb2312");

this.setName(n);

String g = rs.getString(3);

g = new String (g.getBytes("ISO8859_1"),"gb2312");

this.setGender(g);

this.setAge(rs.getInt(4));

b = true;

}

rs.close();

statement.close();

con.close();

return b;

}

}

數據庫你自己弄吧,我沒時間弄了!初學得多動手哦

求一個簡單又經典的JAVA數據庫連接的例子,要有源代碼哦!

我就弄的用戶登入的代碼吧.這個挺簡單的.

這是題目:

用戶登陸驗證:

1.創(chuàng)建數據庫Test,并新建用戶表users

字段包含:username varchar(20) not null

userpwd varchar(20) not null

在JBUILDER中編寫Long類,實現登陸界面,并在用戶輸入用戶名和密碼后,

完成按紐的單擊事件,對用戶輸入的數據進行驗證,

(需要嚴整數據是否為空,密碼長度必須是15位),

并實現與數據庫的連接,將用戶輸入的用戶名密碼與表中的記錄比較,

若用戶名正確且密碼正確,彈出提示框告知登陸成功,否則登陸失敗。

這是代碼:

//連接數據庫

boolean isLogin(String name,String pwd){

boolean flag=false;

Connection conn=null;

PreparedStatement pst=null;

ResultSet rs=null;

//加載驅動

try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

} catch (ClassNotFoundException ex) {

ex.printStackTrace();

}

//連接數據庫

try {

conn=DriverManager.getConnection("jdbc:odbc:login");

String sql="select * from [user] where username=? and userpwd=?";

pst=conn.prepareStatement(sql);

pst.setString(1,name);

pst.setString(2,pwd);

rs=pst.executeQuery();

if(rs.next())

flag=true;

} catch (Exception ex) {

ex.printStackTrace();

}finally{

try {

conn.close();

} catch (Exception ex) {

ex.printStackTrace();

}

}

return flag;

}

//驗證方法

public void jButton1_actionPerformed(ActionEvent e) {

String name=jTextField1.getText();

String pwd=jTextField2.getText();

//錯誤處理

if(name.equals("")||pwd.equals(""))

JOptionPane.showMessageDialog(this,"請輸入完整的信息");

else {

if(isLogin(name,pwd))

JOptionPane.showMessageDialog(this,"登陸成功");

else

JOptionPane.showMessageDialog(this,"用戶名或密碼錯誤");

}

}

}

.....

.....

這是在事件里寫的,

新聞標題:java數據庫源代碼 java類庫源碼
瀏覽地址:http://muchs.cn/article2/docoeic.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站策劃、網站排名、網站改版、網站導航App設計

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網站建設