Programação de banco de dados Java
1. Sistema de banco de dados relacional
1. Estrutura do sistema de banco de dados 2. Sistema de banco de dados
relacional
Em um sistema de banco de dados relacional, uma linha é uma tupla e uma coluna representa um atributo
Two.SQL
1. Primeiro entre no diretório bin onde o arquivo MySQL está localizado na linha de comando
2. Faça login no banco de dados com privilégios de root
2. Verifique quais bancos de dados existem, entre os quais MySql e Test são necessários, MySql é usado para armazenar informações do servidor e outras tabelas de informações do usuário; usado para criar usuários, conceder permissões, revogar usuários e criar para administradores; Banco de dados de teste é usado Armazene dados ou crie um novo banco de dados.
3. Crie um usuário chamado "Bob" e uma senha "123"
4.
Conceda permissões 5. Conceda privilégios para acesso de qualquer IP
6. Conceda privilégios para acesso remoto de um IP específico
7. Use Bob para fazer login em
outros comandos MySql comuns :
exit;//退出
net stop mysql;//停止mysql服务
net start mtsql;//开启mysql服务
source script.sql;//运行sql脚本文件
\c //退出当前命令,重新输入
show grants;//查看权限
Três. JDBC
1. JDBC é uma API para acessar bancos de dados relacionais, fornecendo uma interface para acessar e manipular bancos de dados.
2. Quatro interfaces necessárias para desenvolver aplicativos de banco de dados em Java:
Driver//加载一个合适的驱动
Connection//连接到数据库
Statement//创建和运行SQL语句
ResultSet//处理结果
Quatro etapas típicas para acessar o banco de dados
[Extensão] Adicione o pacote jar mysql ao EclipseIDE, você pode acessar para importar o pacote jar para o eclipse
1. Carregue o driver apropriado
O banco de dados que uso é mySql, então carregue o driver de banco de dados MySql
public static void main(String[] args) {
try {
//第一步:加载合适的驱动
Class.forName("com.mysql.jdbc.Driver");
//下面打印语句测试驱动是否加载成功,可选择性添加
System.out.println("驱动加载成功!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
2. Crie uma conexão
//第二步:建立连接
Connection connection=DriverManager.getConnection("jdbc:mysql://192.168.0.103/javabook","Bob","123");
//Javabook数据库是登录Bob用户新创建的
【Extensão】
base de dados | Padrão de URL |
---|---|
Acesso | jdbc: odbc: dataSource |
MySql | jdbc: mysql: // hostname / dbname |
Oráculo | jdbc: oracle: thin: @hostname: port #: oracleDBSID |
3. Crie a instrução SQL
Sem parâmetros: interface de instrução
//第三步:创建SQL语句
Statement statement=connection.createStatement();
Com ou sem parâmetros podem ser usados: Interface PreparedStatement
PreparedStatement ps=connection.prepareStatement("select firstName,lastName from student where ssn=?");
[Nota] A instrução SQL deve ser escrita para usar a interface PreparedStatement. (Ponto de interrogação) representa um marcador de posição, passe o valor pelo modificador setter
ps.setString(1,"444111110");//1代表传给第几个参数,后面的代表传的内容
O procedimento armazenado usado para executar a interface SQL: CallableStatement
CallableStatement cs=connection.prepareCall("{call samplePrepare (?,?,?)}");///三个?代表转义语句;samplrPrepare是已经创建好的存储过程
Instrução de execução: interface de conjunto de resultados
ResultSet rs=ps.executeQuery();//执行查询语句
ResultSet rs2=ps.executeUpdate();//执行更新语句
resultado do processo
Método: a posição inicial atual é nula, mova para o próximo método
while(rs.next()){
System.out.println(rs.getString(1)+" "+rs.getString(2));//分别是firstName和lastName
}
Resultado final da corrida
Cinco. Obtenha metadados
- Interface DatabaseMetaData: obtenha informações de todo o banco de dados
DatabaseMetaData dmd=connection.getMetaData();
Resultado:
não só pode obter estas duas informações, desde que seja a informação no âmbito da base de dados.
- Interface ResultSetMetaData: obter metadados do conjunto de resultados
ResultSetMetaData rsmd=rs.getMetaData();
for(int i=1;i<=rsmd.getColumnCount();i++){
System.out.printf("%-10s\t",rsmd.getColumnName(i));
}
Resultado:
【Suplemento】
- Java6 não precisa carregar explicitamente o driver
- O método de divisão precisa ser escapado ao dividir "."
Vamos!