日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Java實(shí)現(xiàn)登陸系統(tǒng):數(shù)據(jù)庫連接方式簡介(java登陸界面如何連數(shù)據(jù)庫)

在Web應(yīng)用程序開發(fā)中,數(shù)據(jù)庫是一個必不可少的組成部分。對于Java程序員來說,數(shù)據(jù)庫操作也是必須要掌握的技能之一。Java中,有多種數(shù)據(jù)庫連接的方式,本文將介紹幾種Java中常見的數(shù)據(jù)庫連接方式。

為東源等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及東源網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、東源網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

一、JDBC連接方式

JDBC(Java DataBase Connectivity)是Java中訪問關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)技術(shù),Java程序員可通過JDBC連接關(guān)系型數(shù)據(jù)庫進(jìn)行數(shù)據(jù)讀寫操作。JDBC連接需要采用Java中提供的JDBC驅(qū)動,不同數(shù)據(jù)庫連接的驅(qū)動是不同的。開發(fā)者需要使用相應(yīng)的JDBC驅(qū)動來連接數(shù)據(jù)庫。

JDBC連接使用步驟如下:

1. 加載驅(qū)動

使用Class.forName()方法加載驅(qū)動類。例如: Class.forName(“com.mysql.jdbc.Driver”);

2. 創(chuàng)建連接

使用DriverManager.getConnection()方法創(chuàng)建連接對象。例如: Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,”root”,”root”);

3. 創(chuàng)建語句

使用Connection.prepareStatement()方法創(chuàng)建預(yù)編譯的SQL語句。例如: PreparedStatement ps = conn.prepareStatement(“select * from user where name=? and password=?”);

4. 執(zhí)行SQL語句

使用PreparedStatement.executeUpdate()方法執(zhí)行SQL語句。例如: ResultSet rs = ps.executeQuery();

5. 獲取結(jié)果集

通過ResultSet獲取執(zhí)行SQL語句返回的結(jié)果。

JDBC連接方式簡單易懂,適合初學(xué)者學(xué)習(xí)。但是,JDBC連接存在一些缺陷,比如代碼重復(fù),書寫繁瑣等等。

二、C0數(shù)據(jù)庫連接池

C0是一款開源的數(shù)據(jù)庫連接池庫,使用C0可以有效提高數(shù)據(jù)庫訪問速度,避免了頻繁的數(shù)據(jù)庫連接開關(guān)操作。使用C0的好處在于它可以有效地管理數(shù)據(jù)庫連接,避免因?yàn)轭l繁的數(shù)據(jù)庫連接打開和關(guān)閉導(dǎo)致的效率低下的問題。

使用C0連接池連接數(shù)據(jù)庫的步驟如下:

1. 引入C0的jar包

2. 配置數(shù)據(jù)源

通過配置c3p0-config.xml文件或者在Java代碼中編寫配置信息來初始化數(shù)據(jù)源。例如:

“`

ComboPooledDataSource dataSource = new ComboPooledDataSource();

dataSource.setDriverClass(driverClass);

dataSource.setJdbcUrl(jdbcUrl);

dataSource.setUser(user);

dataSource.setPassword(password);

“`

3. 獲取連接

從數(shù)據(jù)源中獲取連接進(jìn)行數(shù)據(jù)庫操作。例如:

“`

Connection connection = dataSource.getConnection();

“`

C0連接池方便易用,可以較容易地管理并發(fā)連接和提高連接使用效率。

三、Hibernate連接方式

Hibernate是一個開放源代碼的對象關(guān)系映射框架,它使用JDBC連接關(guān)系型數(shù)據(jù)庫,但與JDBC不同的是,Hibernate是面向?qū)ο蟮?,?qiáng)制性地將數(shù)據(jù)存儲到類中。

使用Hibernate連接數(shù)據(jù)庫的步驟如下:

1. 引入Hibernate的jar包

2. 配置Hibernate連接屬性

Hibernate連接屬性包括驅(qū)動類名稱、連接URL、用戶名和密碼等。例如:

“`

hibernate.connection.driver_class=com.mysql.jdbc.Driver

hibernate.connection.url=jdbc:mysql://localhost:3306/test

hibernate.connection.username=root

hibernate.connection.password=root

“`

3. 創(chuàng)建SessionFactory

SessionFactory是Hibernate的核心接口,用于生成Session實(shí)例,這個過程比較耗費(fèi)性能,因此盡量使用單例模式。例如:

“`

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

“`

4. 獲取Session

Session是Hibernate的核心組件,用于進(jìn)行數(shù)據(jù)庫訪問和修改數(shù)據(jù)等操作。例如:

“`

Session session = sessionFactory.openSession();

“`

Hibernate使用面向?qū)ο蟮姆绞竭M(jìn)行數(shù)據(jù)庫操作,開發(fā)效率高,使用方便。

Java實(shí)現(xiàn)登陸系統(tǒng)需要連接數(shù)據(jù)庫,常用的數(shù)據(jù)庫連接方式有JDBC連接、C0連接池和Hibernate連接方式。選擇不同的連接方式需要考慮到自己的程序需求和技能水平,JDBC連接方式適合初學(xué)者,C0連接池適合于需要高并發(fā)連接和提高連接使用效率的情況,Hibernate適合對面向?qū)ο蟮募夹g(shù)有一定掌握的開發(fā)者。在實(shí)現(xiàn)登陸系統(tǒng)之前? 程序員需要仔細(xì)評估選擇數(shù)據(jù)庫連接方式的優(yōu)缺點(diǎn),以作出合適的選擇。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務(wù)!

求用java編登錄頁面,可以連接MySql 數(shù)據(jù)庫

之一步:創(chuàng)建一個查詢過程,因?yàn)樵诘卿洉r要根據(jù)用戶名查詢用戶密碼

此步要用到pl/蘆旁顫sql編程知陪敗識,代碼如下:

create or replace procedure sel_user(uname in varchar2,pass out varchar2) is

begin

select users.password into pass from users where users.username=uname and rownum = 1;

end;

第二步:編寫登錄頁面(login.java)(采用純java+servlet編寫)

//login.java如下

package cn.hnu;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class testhtml extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

resp.setContentType(“text/html;charset=gbk”);

try {

PrintWriter pw = resp.getWriter();

pw.println(“”);

pw.println(“”);

pw.println(“”);

pw.println(“用戶登錄”);

pw.println(“”);

pw.println(“”);

pw.println(“”);

pw.println(“

用戶登錄

“);

pw.println(“”);

pw.println(“”);

pw.println(“用戶名:
“);

pw.println(“密  碼:
“);

pw.println(“”);

pw.println(“”);

pw.println(“”);

pw.println(“”);

pw.println(“”);

} catch (Exception e) {

e.printStackTrace();

// TODO: handle exception

}

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

this.doGet(req, resp);

}

}

第三步:編程成功登錄頁面(wel.java) //wel.java如下,它主要用于用戶正常登錄后顯示信息給用戶

package cn.hnu;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class Wel extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

//防止用戶非法登錄

HttpSession hs = req.getSession();

String s = (String)hs.getAttribute(“pass”);

if(s == null){

resp.sendRedirect(“l(fā)ogin”);

}

PrintWriter pw = resp.getWriter();

pw.write(“welcome,hello”);

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

this.doGet(req, resp);

}

}

第四步:編寫login處理頁面(loginCl.java)

package cn.hnu;

import java.io.IOException;

import java.sql.*;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

public class loginCl extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

String u = req.getParameter(“userName”);

String p = req.getParameter(“password”);

//查詢數(shù)據(jù)庫

String pa=null;

Connection ct = null;

CallableStatement cs = null;

try {

Class.forName(“oracle.jdbc.driver.OracleDriver”);

ct = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:oracle”,

“scott”, “tiger”);

cs = ct.prepareCall(“{call sel_user(?,?)}”);

cs.setString(1, u);

cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);

cs.execute();

pa = cs.getString(2);

System.out.println(“u=” + u + ” p=” + pa);

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

try {

if (cs != null) {

cs.close();

}

if (ct != null) {

ct.close();

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

//驗(yàn)證用戶信息是否合法

if (p.equals(pa)) {

HttpSession hs = req.getSession(true);//防止用戶非法登錄

hs.setAttribute(“pass”, “OK”);

resp.sendRedirect(“wel”);

} else {

resp.sendRedirect(“l(fā)ogin”);

}

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

this.doGet(req, resp);

}

}

親,sql可以換成MySQL

這個沒關(guān)系的,別的都可以照搬來用

Java中怎么連接數(shù)據(jù)庫

這個很簡單

1、初學(xué)者常見的方式,使迅租用JDBC直連數(shù)據(jù)畝蠢兆庫,檔毀加載一下驅(qū)動就可以。比較直觀,但是項目中沒人這樣用,因?yàn)閷τ诎嘿F的數(shù)據(jù)庫連接沒有管理。

2、項目常見的方式,使用數(shù)據(jù)庫連接池,DBCP,C0,proxool 等等,有統(tǒng)一有效的數(shù)據(jù)庫連接管理,比較方便。

3、希望對你有幫助。

java中如何實(shí)現(xiàn)登錄界面與數(shù)據(jù)庫正確連接?

import java.awt.Dimension;

import java.awt.GridLayout;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import javax.swing.JDialog;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;/*** * @author mzhe**/

class Loginfrm extends JDialog implements ActionListener

{

JLabel l_name,l_pass,l_error;

JTextField t_name;

JButton b_enter,b_cancle,b_clear;

JPanel pan1,pan2,pan3,pan4;

JPasswordField t_pass;

String sname,spass;

int sunit;

NetConn sql;

Statement sqll;

ResultSet rs;

Librarybox lbox;

int until=0;

Loginfrm(JFrame f,String s)

{

//界面布局

super(f,s);

l_name=new JLabel(“名字:”);

l_pass=new JLabel(“密碼:”);

l_error=new JLabel(“請輸入用戶名和密碼登錄”);

t_name=new JTextField(“”,10);

t_pass=new JPasswordField(“”,10);

t_pass.setEchoChar(‘悉灶*’);

b_enter=new JButton(“確定”);

b_enter.addActionListener(this);

b_cancle=new JButton(“取消”);

b_cancle.addActionListener(this);

b_clear=new JButton(“清除”);

b_clear.addActionListener(this);

pan1=new JPanel();

pan2=new JPanel();

pan3=new JPanel();

pan4=new JPanel();

pan1.add(l_name);

pan1.add(t_name);

pan2.add(l_pass);

pan2.add(t_pass);

pan3.add(l_error);

pan4.add(b_enter);

pan4.add(b_cancle);

pan4.add(b_clear);

setLayout(new GridLayout(4,1));

add(pan1);

add(pan2);

add(pan3);

add(pan4);

//建立數(shù)據(jù)庫連接

sql=new NetConn();

//設(shè)睜配扮置窗口大小

setSize(300,300);

setVisible(false);

//得到屏幕信息以便使框架居中顯示

Dimension screeSize = Toolkit.getDefaultToolkit().getScreenSize();

int screeWidth=screeSize.width;

int screeHeight=screeSize.height;

//得到框架的大小信息賣滾

Dimension frameSize=this.getSize();

int x=(screeWidth-frameSize.width)/2;

int y=(screeHeight-frameSize.height)/2;

this.setLocation(x, y);

}

public void actionPerformed(ActionEvent e)

{

//單擊確定按鈕的事件處理程序

if(e.getSource()==b_enter)

{

//如果連續(xù)登錄次數(shù)小于4

if(until

{

//如果用戶名或者密碼為空,將顯示提示信息

if(t_name.getText().equals(“”)||t_pass.getText().equals(“”))

{

l_error.setText(“用戶名和密碼不能為空”);

}

else

{

try{

sqll=sql.connect();

//根據(jù)用戶名查詢

rs=sqll.executeQuery(“SELECT * FROM users where username=”+”‘”+t_name.getText()+”‘”);

//遍歷查詢得到的結(jié)果集

while(rs.next())

{

sname=rs.getString(2);

spass=rs.getString(3);

//得到登錄用戶的級別

sunit=Integer.parseInt(rs.getString(4));

//如果密碼正確

if(t_pass.getText().equals(spass))

{

//判斷用戶的級別,根據(jù)不同的級別,顯示不同的菜單

switch(sunit)

{

case 1:{l_error.setText(“登錄成功”);

t_name.setText(“”);

t_pass.setText(“”);

lbox=new Librarybox();

lbox.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

lbox.setResizable(false);

lbox.bookfi.setEnabled(true);

lbox.bookse.setEnabled(true);

lbox.bookth.setEnabled(true);

lbox.bookfo.setEnabled(true);

lbox.mi_system_manger.setEnabled(true);

lbox.mi_system_login.setEnabled(false);

lbox.setVisible(true);this.dispose();

break;

}

case 2: {

l_error.setText(“登錄成功”);

t_name.setText(“”);

t_pass.setText(“”);

lbox=new Librarybox();

lbox.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

lbox.setResizable(false);

lbox.bookfi.setEnabled(false);

lbox.bookse.setEnabled(false);

lbox.bookth.setEnabled(true);

lbox.bookfo.setEnabled(false);

lbox.mi_system_manger.setEnabled(false);

lbox.mi_system_login.setEnabled(false);

lbox.setVisible(true);

this.dispose();break;

}

case 3:

{

l_error.setText(“登錄成功”);

t_name.setText(“”);

t_pass.setText(“”);

lbox=new Librarybox();

lbox.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

lbox.setResizable(false);

lbox.bookfi.setEnabled(true);

lbox.bookse.setEnabled(false);

lbox.bookth.setEnabled(false);

lbox.bookfo.setEnabled(true);

lbox.mi_system_manger.setEnabled(false);

lbox.mi_system_login.setEnabled(false);

lbox.fi_msglabel_user.setEnabled(false);

lbox.setVisible(true);

this.dispose();

break;

}

}

}

else{

l_error.setText(“用戶名或密碼錯誤!”);

until++;

}

}

}catch(SQLException e2){

e2.printStackTrace();

}

}

}

//超出登錄次數(shù)

else{

l_error.setText(“你已經(jīng)超出登錄次數(shù)”);

t_name.setEnabled(false);

t_pass.setEnabled(false);

b_enter.setEnabled(false);

b_clear.setEnabled(false);

}

}//單擊清除按鈕的事件處理程序

else if(e.getSource()==b_clear)

{

t_name.setText(“”);

t_pass.setText(“”);

l_error.setText(“請輸入用戶名和密碼登錄”);

}

//單擊取消按鈕的事件處理程序

else if(e.getSource()==b_cancle)

{

dispose();

}

}

}

看你用什么框架了耐枝 簡單一點(diǎn)的比如jsp+javabean 頁面提交表單,提交給后臺的javabean 后臺使昌侍敏用jdbc的話 按照jdbc的配置順序建立好數(shù)據(jù)庫連接,然后拼sql語句 把表單的變量放到sql語句里 就完談桐成了一次和數(shù)據(jù)庫的交互?。『芎唵蔚?,多看看其他人的項目例子!

關(guān)于java登陸界面如何連數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!


網(wǎng)站名稱:Java實(shí)現(xiàn)登陸系統(tǒng):數(shù)據(jù)庫連接方式簡介(java登陸界面如何連數(shù)據(jù)庫)
轉(zhuǎn)載注明:http://www.dlmjj.cn/article/dpgcehc.html