实战 php调用java类由java类读数据库完成相关操作(Inber Write)_PHP
1 建立系统ODBC 数据源photo(本次使用的是Oracle 9i,详细配置如有不懂这处再和我联系)
2 编译DataBaseConnection.java文件 将其编译文件放入到PHP支持的类文件目录中
package com.inberkong.util;
/*******************************************************
* Programe File :复件缓冲池DataBaseConnection.java
* Creat Date :3/28/2005(MM-DD-YYYY)
* Creat By :InberKong(GongYingBin)
* LastModifyDate :3/28/2005(MM-DD-YYYY)
* ModifyBy :InberKong(GongYingBin)
* Function :Get the Oracle DataBaseConnectionPool
//一个用于查找数据源的工具类。
*******************************************************/
import java.sql.*;
//连接数据库的工具类。
public class DataBaseConnection
{
/**
*一个静态方法,返回一个数据库的连接。
*/
public static Connection getConnection()
{
Connection con=null;
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:photo","photo","inberkong");//数据源连接信息
}
catch(Exception e)
{
e.printStackTrace();
}
return con;
}
}
3 编译读数据表的处理类同样将处理类放入PHP调用的Java类目录
这是一个读取用户角色表 返回用户与角色间关系的JS数组的处理类 GetUserRolseArray.java
注:读程序时不需要关心相关的表结构,可只关心整个调用的处理过程。
package com.inberkong.processBean;
import java.lang.*;
import java.sql.*;
import java.util.*;
import java.io.*;
import com.inberkong.util.DataBaseConnection;
public class GetUserRolseArray
{
private Connection conss;
private Statement stmtsss=null;
private Statement stmt2=null,stmt3=null;
private ResultSet rstsss=null;
private ResultSet rst2=null,rst3=null;
private String sqlss="";
private String sql2="",sql3="";
private String rString="";
private String ID,ID2;
private String NAME;
private int i=0;
public GetUserRolseArray()
{
try
{
this.conss=DataBaseConnection.getConnection();
}
catch(Exception e)
{
}
//DataBaseConnection.getConnection();
}
protected void finalize() throws Throwable
{
//
//super.finalize();
//System.out.println("inberkong");
closeCON();
}
public String getUserRolseArray() throws Exception
{
//exePtempfunction();
sqlss="SELECT ID,NAME FROM ADMIN WHERE 1=1 AND STATE!=0 AND USERTYPE!='0'
ORDER BY ID DESC";
//外部用户不参于后加角色管理
stmtsss=conss.createStatement();
rstsss=stmtsss.executeQuery(sqlss);
while (rstsss.next())
{
ID=rstsss.getString("ID");
ID2=ID;
NAME=rstsss.getString("NAME");
rString=rString "\n" "arr[" i "]=new BDSort
('" ID "','00','" NAME "','');";
i ;
sql3="select ID,NAME from ROLE_MANAGE where ID in( select ROLSEID
from USER_ROLSE_LINK where USERID=" ID2 ") order by ID asc ";
stmt3=conss.createStatement();
rst3=stmt3.executeQuery(sql3);
while(rst3.next())
{
ID=rst3.getString("ID");
NAME=rst3.getString("NAME");
rString=rString "\n" "arr[" i "]=new BDSort
('" ID "','" ID2 "','" NAME "','y');";
i ;
}
sql2="select ID,NAME from ROLE_MANAGE where ID not in(select
ROLSEID from USER_ROLSE_LINK where USERID=" ID2 ") order by ID asc ";
stmt2=conss.createStatement();
rst2=stmt2.executeQuery(sql2);
while(rst2.next())
{
ID=rst2.getString("ID");
NAME=rst2.getString("NAME");
rString=rString "\n" "arr[" i "]=new BDSort
('" ID "','" ID2 "','" NAME "','n');";
i ;
}
}
rstsss=null;
return rString;
}
public static void main(String[] args){
//测试如下
GetUserRolseArray obj1 = new GetUserRolseArray();
try
{
System.out.println(obj1.getUserRolseArray());
}
catch(Exception e)
{
//System.out.println(e);
}
return;
}
public void closeStmtSSS()throws Exception
{
stmtsss.close();
}
public void closeCON() throws Exception
{
if(!(conss.isClosed()))
conss.close();
}
}
4 PHP调用
testjava.php
$b=new Java("com.inberkong.processBean.GetUserRolseArray");
$x=$b->getUserRolseArray();
echo $x;
?>
调用结果:
arr[0]=new BDSort('186','00','dp2','');
arr[1]=new BDSort('44','186','店铺管理员','y');
arr[2]=new BDSort('42','186','超级管理员','n');
arr[3]=new BDSort('43','186','公告管理员','n');
arr[4]=new BDSort('87','186','测试普通管理员','n');
arr[5]=new BDSort('106','186','普通超管','n');
arr[6]=new BDSort('185','00','dp1','');
arr[7]=new BDSort('44','185','店铺管理员','y');
arr[8]=new BDSort('42','185','超级管理员','n');
arr[9]=new BDSort('43','185','公告管理员','n');
arr[10]=new BDSort('87','185','测试普通管理员','n');
arr[11]=new BDSort('106','185','普通超管','n');
arr[12]=new BDSort('146','00','chayue','');
arr[13]=new BDSort('44','146','店铺管理员','y');
arr[14]=new BDSort('42','146','超级管理员','n');
arr[15]=new BDSort('43','146','公告管理员','n');
arr[16]=new BDSort('87','146','测试普通管理员','n');
arr[17]=new BDSort('106','146','普通超管','n');
arr[18]=new BDSort('145','00','temp2','');
arr[19]=new BDSort('87','145','测试普通管理员','y');
arr[20]=new BDSort('42','145','超级管理员','n');
arr[21]=new BDSort('43','145','公告管理员','n');
arr[22]=new BDSort('44','145','店铺管理员','n');
arr[23]=new BDSort('106','145','普通超管','n');
arr[24]=new BDSort('20','00','cnbadmin','');
arr[25]=new BDSort('42','20','超级管理员','y');
arr[26]=new BDSort('43','20','公告管理员','n');
arr[27]=new BDSort('44','20','店铺管理员','n');
arr[28]=new BDSort('87','20','测试普通管理员','n');
arr[29]=new BDSort('106','20','普通超管','n');
arr[30]=new BDSort('1','00','inber','');
arr[31]=new BDSort('106','1','普通超管','y');
arr[32]=new BDSort('42','1','超级管理员','n');
arr[33]=new BDSort('43','1','公告管理员','n');
arr[34]=new BDSort('44','1','店铺管理员','n');
arr[35]=new BDSort('87','1','测试普通管理员','n');

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

목차 Astar Dapp 스테이킹 원리 스테이킹 수익 잠재적 에어드랍 프로젝트 해체: AlgemNeurolancheHealThreeAstar Degens DAOVeryLongSwap 스테이킹 전략 및 운영 "AstarDapp 스테이킹"이 올해 초 V3 버전으로 업그레이드되었으며 스테이킹 수익에 많은 조정이 이루어졌습니다. 규칙. 현재 첫 번째 스테이킹 주기는 종료되었으며 두 번째 스테이킹 주기의 "투표" 하위 주기가 막 시작되었습니다. '추가 보상' 혜택을 받으려면 이 중요한 단계(6월 26일까지 지속 예정, 5일 미만 남았음)를 파악해야 합니다. 아스타 스테이킹 수익을 자세하게 분석해보겠습니다.

Golang의 데이터베이스 콜백 기능을 사용하면 다음을 달성할 수 있습니다. 지정된 데이터베이스 작업이 완료된 후 사용자 정의 코드를 실행합니다. 추가 코드를 작성하지 않고도 별도의 함수를 통해 사용자 정의 동작을 추가할 수 있습니다. 삽입, 업데이트, 삭제, 쿼리 작업에 콜백 함수를 사용할 수 있습니다. 콜백 함수를 사용하려면 sql.Exec, sql.QueryRow, sql.Query 함수를 사용해야 합니다.

JSON 데이터는 gjson 라이브러리 또는 json.Unmarshal 함수를 사용하여 MySQL 데이터베이스에 저장할 수 있습니다. gjson 라이브러리는 JSON 필드를 구문 분석하는 편리한 방법을 제공하며, json.Unmarshal 함수에는 JSON 데이터를 비정렬화하기 위한 대상 유형 포인터가 필요합니다. 두 방법 모두 SQL 문을 준비하고 삽입 작업을 수행하여 데이터를 데이터베이스에 유지해야 합니다.

Go 표준 라이브러리 데이터베이스/sql 패키지를 통해 MySQL, PostgreSQL 또는 SQLite와 같은 원격 데이터베이스에 연결할 수 있습니다. 데이터베이스 연결 정보가 포함된 연결 문자열을 생성합니다. sql.Open() 함수를 사용하여 데이터베이스 연결을 엽니다. SQL 쿼리 및 삽입 작업과 같은 데이터베이스 작업을 수행합니다. 리소스를 해제하기 위해 defer를 사용하여 데이터베이스 연결을 닫습니다.

PHP 데이터베이스 연결 가이드: MySQL: MySQLi 확장을 설치하고 연결(서버 이름, 사용자 이름, 비밀번호, dbname)을 만듭니다. PostgreSQL: PgSQL 확장을 설치하고 연결(호스트, DB 이름, 사용자, 비밀번호)을 생성합니다. Oracle: OracleOCI8 확장을 설치하고 연결(서버 이름, 사용자 이름, 비밀번호)을 만듭니다. 실제 사례: MySQL 데이터, PostgreSQL 쿼리, OracleOCI8 업데이트 기록을 얻습니다.
