JAVA web 与数据库的连接到底是怎样连的啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA web 与数据库的连接到底是怎样连的啊?相关的知识,希望对你有一定的参考价值。

JAVA Web开发中与数据库的连接操作,配置:
1、新建数据库。
新建登录角色,在新建数据库的时候把数据库的所有权交给你新建的角色。用用户和密码控制数据库。保证数据库的安全。

2、编写context.xml文件 Xml文件的目的是封装用户和密码,也是封装的一种,方便操作。
以下为context.xml文件样例:
<?xml version="1.0" encoding="utf-8"?>
<Context reloadable = "true">
<Resource
name="jdbc/sampleHS"
type="javax.sql.DataSource"
maxActive="14"
maxIdle="10"
username="hstaoshu"
maxWait="5000"
driverClassName="org.postgresql.Driver"
password="hstaoshu"
url="jdbc:postgresql://localhost:5432/hstaoshu"/>
</Context>
详细说明:
name="jdbc/sampleHS"里面的ssampHS是可改名称,建议根据需要自己命名;
username="hstaoshu"
password="hstaoshu"此两项为你新建的数据库登录角色用户名和密码信息,只有匹配 了才能访问。这里简单为了表示,把用户名和密码弄成了跟数据库名字一样。其实这是很不安全的。
url="jdbc:postgresql://localhost:5432/hstaoshu"/>
这是连接数据库的URl,就像访问网站的地址一样。没有这个是无法访问数据库的。localhost:5432表示本地端口。一般不需要改动,如果你在配置数据库的时候改动过端口,那么你需要把它改回来。/hstaoshu是你的数据库名称。
其他选项请勿擅自改动。

3、编写DAO类。
DAO类的作用是与数据连接后,对数据库的一些操作的封装。封装的作用。为了更好的数据管理。
DAO是真正如何使用数据库的关键步骤,前两步只是部署和配置。
private static InitialContext context = null;
private DataSource dataSource = null;
//一般把跟数据库的连接放在DAO类的构造函数里,只要被实例化,就能和数据库连接。
public BookDAO()
try
if (context == null)
context = new InitialContext();

dataSource = (DataSource) context.lookup("java:comp/env/jdbc/sampleHS");
// 连接数据库,前面在context.xml文件配置里的URl
catch (NamingException e2)
e2.printStackTrace();


public Connection getConnection()
Connection conn = null;
try
conn = dataSource.getConnection();// 获得数据源的连接对象
catch (SQLException e)
e.printStackTrace();

return conn;


做完上面的三步操作,开发环境已经完全和数据库连接OK,可以开始数据库的操作了。一般来说,对数据库的操作语句都是提前封装好的。这样修改起来会对下面的代码影响降到最小。
如下:
// ------------------数据库操作语句代码封装------------------

/* 查看所有图书 */
private static final String SELECT_ALL_SQL = "SELECT * FROM book";
那么在使用的时候只要直接调用:
pstmt = conn.prepareStatement(SELECT_ALL_SQL);
参考技术A 就自己写个连数据库的类还有方法,然后在web页面中调就可以,不过这些代码应写在<%%>中 参考技术B JAVA WEB应用程序应该尽量不要再JSP页面中写代码段!
现在持久化可以用Hibernate来解决!
参考技术C 使用struts框架
在action里面调用javabean
连接数据库的方法写在javabean里面
参考技术D 一、jsp连接Oracle8/8i/9i数据库(用thin模式)
testoracle.jsp如下:
<%@ page c%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为你的数据库的SID
String user="scott";
String password="tiger";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) %>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
二、jsp连接Sql Server7.0/2000数据库
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
三、jsp连接DB2数据库
<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
四、jsp连接Informix数据库
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INformIXSERVER=myserver;
user=testuser;password=testpassword";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
五、jsp连接Sybase数据库
<%Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/tsdata";
//tsdata为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
六、jsp连接mysql数据库
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
七、jsp连接PostgreSQL数据库
<%Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/soft"
//soft为你的数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

java与oracle要怎样连接?

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseConnection
/*
* 功能:编写一个静态方法用于与数据库建立连接
* 输入参数:无
* 返回值:数据库连接对象
* */
public static Connection getConnection()
//定义一个连接对象
Connection conn=null;
//定义连接数据库的URL资源
String url="jdbc:oracle:thin:@192.168.3.9:1521:oracle";
//定义连接数据库的用户名称与密码
String username="faqsys";
String password="faqsysuser";
//加载数据库连接驱动
String className="oracle.jdbc.driver.OracleDriver";
try
Class.forName(className);
catch (ClassNotFoundException e)
// TODO Auto-generated catch block
e.printStackTrace();

//获取数据库的连接对象
try
conn=DriverManager.getConnection(url,username,password);
System.out.println("数据库连接建立成功...");
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();

//返回连接对象
return conn;

参考技术A JDBC啊,六大步,
String url = "jdbc:oracle:thin:@localhost:1521:XE";//固定的,照着写就行
String username = "system";//oracle用户名
String pwd = "123";//oracle密码
String sql = "select sum(cost) from orders where userid = ? and orderstatusid = 3";
String sql2 = "select * from vidmember where id = ?";

/*
* 根据id查找出该人消费的总金额。
* */
public int MoneyfindById(int id)

int a = 0;
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;

try
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, username, pwd);
pst = conn.prepareStatement(sql);
pst.setInt(1,id);
rs = pst.executeQuery();
if(rs.next())
a = rs.getInt("sum(cost)");

catch (ClassNotFoundException e)
// TODO Auto-generated catch block
e.printStackTrace();
catch (SQLException e)
// TODO Auto-generated catch block
e.printStackTrace();


return a;
参考技术B 驱动类:oracle.jdbc.driver.OracleDriver
URL: jdbc:oracle:thin:@server:1521:#ORACLE名
用户名:oracle登录名
密码: oracle密码
其实oracle连接数据库跟SQL Server还有MYSQL差不多 就是驱动类跟URL不太一样...
参考技术C 各种数据库与之的连接代码,网上一大堆,查一下不就行了。

以上是关于JAVA web 与数据库的连接到底是怎样连的啊?的主要内容,如果未能解决你的问题,请参考以下文章

Java Web与数据库连接

用python编写与mysql数据库连接并实现断线重连的问题

java中treeset的构造方法Comparator的构造方法是通过啥怎样比较的啊?

java statement到底是怎样执行查询的?

Java Web 单表操作

连接Mysql时出现java.math.BigInteger cannot be cast to java.lang.Long问题