如何用JSP连接安装在Linux上的MySQL

如何用JSP连接安装在Linux上的MySQL,第1张

你的虚拟机安装的时候,是需要一个IP的,然后你在用jsp链接mysql时,从连接字符串里配一下,就可以了,我在做项目时,链接数据库倒是容易,反倒是在linux上安装mysql费了不少劲,详情请看我的博客http://hi.baidu.com/sdgtxuyong/blog/item/f17370cf3e6d1237f9dc6166.html 一、到官方网站下载server,和client,然后分别安装。用rpm -ivh XXX安装二、在/usr/share/mysql下复制一份my-medium.cnf 并重命名为my.cnf到/etc/my.cnf三、修改my.cnf1、

port= 3306

socket = /var/lib/mysql/mysql.sock

skip-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

pid-file=/var/lib/mysql/pcstudio.pid

其中pcstudio为机器名。2、加上

bind-address = 192.168.3.205四、修改mysql数据文件夹的权限。一般为/var/lib/mysql,默认是只读的,改为可写可读。五、修改可远程访问。mysql>use mysql

mysql>GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION

#这句话的意思 ,允许任何IP地址(上面的 % 就是这个意思)的电脑 用admin帐户 和密码(admin)来访问这个MySQL Server

#必须加类似这样的帐户,才可以远程登陆。 root帐户是无法远程登陆的,只可以本地登陆六、修改字符集编码支持中文1. 在[mysqld]段中添加default-character-set=utf8

2. 在[client]中添加default-character-set=utf8在建库的时候选择字符集为utf-8,就可以了 祝你好运!

第一步是:

下载JDK,安装JDK,这个网上有好多教程。

第二步:

下载Apache-tomcat(最好下载免安装版本的),然后进行安装,之后就可以启动tomcat服务器,在浏览器进行访问是否搭建成功。

第三步:

下载mysql数据库,有免安装版本的,也有安装版本的,然后进行安装,启动服务。

这样就可以发布jsp文件,通过浏览器进行访问了。

有问题加QQ: 1473773560

在项目lib中加入mysql的jar包,然后写jdbc链接信息即可,如下提供多种链接方式希望对你有帮助

JDBC连接MySQL

加载及注册JDBC驱动程序

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

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

JDBC URL 定义驱动程序与数据源之间的连接

标准语法:

<protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data source identifier(数据源)>

MySQL的JDBC URL格式:

jdbc:mysql//[hostname][:port]/[dbname][?param1=value1][&param2=value2]….

 

示例:jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password

 

常见参数:

user                       用户名

password                  密码

autoReconnect                  联机失败,是否重新联机(true/false)

maxReconnect              尝试重新联机次数

initialTimeout               尝试重新联机间隔

maxRows                   传回最大行数

useUnicode                 是否使用Unicode字体编码(true/false)

characterEncoding          何种编码(GB2312/UTF-8/…)

relaxAutocommit            是否自动提交(true/false)

capitalizeTypeNames        数据定义的名称以大写表示

建立连接对象

String url="jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password"

Connection con = DriverManager.getConnection(url)

建立SQL陈述式对象(Statement Object)

Statement stmt = con.createStatement();

执行SQL语句

executeQuery()

String query = "select * from test"

ResultSet rs=stmt.executeQuery(query)

结果集ResultSet

while(rs.next())

{rs.getString(1)rs.getInt(2)}

executeUpdate()

String upd="insert into test (id,name) values(1001,xuzhaori)"

int con=stmt.executeUpdate(upd)

execute()

示例:

try

 

 

{

 

 

 

 

 

}

catch(SQLException sqle)

{

}

finally

{

}

 

Java类型和SQL类型 技术手册P421

PreparedStatement(预编语句)

PreparedStatement stmt = conn.prepareStatement("insert into test(id,name)values(?,?)")

stmt.setInt(1,id)

stmt.setString(2,name)

注:一旦设定语句的参数值后,就可以多次执行改语句,直到调用clearParameters()方法将他清除为止

CallableStatement(预储程序)技术手册P430

JDBC2.0使用

ResultSet对象中的光标上下自由移动

Statement stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY)

ResultSet rs=stmt.executeQuery("select * from test")

 

public Statement createStatement(int resultSetType,int resultSetConcuttency) throws SQLException

 

resultSetType

TYPE_FORWARD_ONLY            只能使用next()方法。

TYPE_SCROLL_SENSITIVE        可以上下移动,可以取得改变后的值。

TYPE_SCROLL_INSENSITIVE      可以上下移动。

resultSetConcuttency

CONCUR_READ_ONLY        只读

CONCUR_UPDATABLE        ResultSet对象可以执行数据库的新增、修改、和移除

 

直接使用ResultSet对象执行更新数据

新增数据

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE)

ResultSet uprs=stmt.executeQuery("select * from test")

uprs.moveToInsertRow()

uprs.updateInt(1,1001)

uprs.updateString(2,"许召日")

uprs.insertRow

更新数据

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE)

ResultSet uprs=stmt.executeQuery("select * from test")

uprs.last()

uprs.updateString("name","www.5itjob.com")

uprs.updateRow

删除数据

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_PUDATABLE)

ResultSet uprs=stmt.executeQuery("select * from test")

uprs.absolute(4)

uprs.deleteRow()

 

批处理

con.setAutoCommit(false) 关闭自动认可模式

Statement stmt=con.createStatement()

int[] rows

stmt.addBatch("insert into test values(1001,xuzhaori)")

stmt.addBatch("insert into test values(1002,xuyalin)")

rows=stmt.executeBatch()

con.commit() 没有任何错误,执行批处理stmt.executeBatch()

 

JNDI-数据源(Data Source)与连接池(Connection Pool)

Tomcat的JDBC数据源设置 技术手册P439

连接池工具-Proxool Var 0.8.3 技术手册P446

设置web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!--<?xml version="1.0" encoding="GB2312"?>-->

 

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

version="2.4">

….

<servlet>

<servlet-name>ServletConfigurator</servlet-name>

<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>

 

<init-param>

<param-name>propertyFile</param-name>

<param-value>WEB-INF/classes/Proxool.properties</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

后端统计端口添加下列

<servlet>

<servlet-name>Admin</servlet-name>

<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>

</servlet>

 

<servlet-mapping>

<servlet-name>Admin</servlet-name>

<url-pattern>/Admin</url-pattern>

</servlet-mapping>

 

….

 

</web-app>

 

配置Proxool.properties

jdbc-0.proxool.alias=JSPBook

jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver

jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/sample_db?user=root&password=browser&useUnicode=true&characterEncoding=UTF-8

jdbc-0.proxool.maximum-connection-count=10

jdbc-0.proxool.prototype-count=4

jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE

jdbc-0.proxool.verbose=true

jdbc-0.proxool.statistics=10s,1m,1d    后端统计接口添加此行

jdbc-0.proxool.statistics-log-level=DEBUG

使用Proxool连接池

Connection con = DriverManager.getConnection("proxool.JSPBook")

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE)

String query = "SELECT * FROM employee"

ResultSet rs = stmt.executeQuery(query)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8339281.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存