2018年11月29日星期四java
先用mysql客户端链接主机mysql数据库,建立一个数据库ykdb,调整程序能够操做mysql数据库mysql
转到bin路径,复制链接mysql数据库的jar包到bin路径,运行程序 java -cp ./ mysql-connector-java-5.1.12-bin.jar;. yksqllinux
yksql>建立一张表yktbl(id int auto_increment primary key,idb char(10) )算法
yksql>增长一个日期字段rqsql
yksql>增长数据 insert into yktbl(idb,rq) values( 填空 )数据库
yksql>显示数据编程
作完后在电脑中找到你建立的数据库所在的文件夹数组
数据库服务器
单机数据库:access sqlite。。。网络
网络数据库: Oracle mysql sqlserver sybase informix db2.。。。。。
企业用的都是服务器版数据库,必定在某个端口侦听,数据库必定对应系统的某个文件,使用数据库必定须要用户 和口令
使用标准SQL和数据库进行交流,每一个数据库还有在标准SQL基础上扩展的可编程的部分,这块是不同的
让程序能够操做Sqlserver数据库须要一个sqlserver数据库、操做sqlserver的jar包,而后调整代码中Class.forName(驱动类的名字)调整getConnection中URL、USER、PASS
不须要修改咱们的程序,就能操做全部的数据库,怎么作?
方法一:
String sDriver=null,sUrl=null,sUser=null,sPwd=null;
switch(dbtype){
case “oracle”:
sDriver=”oracle……”; sUrl=”oracleurl”; sUser=”scott”;sPwd=”tiger”;
break;
case “mysql”:
sDriver=”mysql……”; sUrl=”mysqlurl”; sUser=”root”;sPwd=””;
break;
…….
defautl:
break;
}
Class.forName(sDriver);
Connection conn=DriverManager.getConnection(sUrl,sUser,sPwd);
方法二:
用一个文件配置driver、url、user、paas信息
怎么读properties文件?
class read {
public static void main(String... args) {
System.out.println(System.getProperty("user.dir"));
}
}
在命令行不一样位置运行这个程序( )
import java.io.FileInputStream;
import java.io.FileNotFoundException;
class read {
public static void main(String... args) throws FileNotFoundException {
String sPath=System.getProperty("user.dir");
sPath=sPath+"/db.properties";
new FileInputStream(sPath);
}
}
在命令行运行(注意有包要带上包名称)不要看到异常
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Properties;
class read {
public static void main(String... args) {
String sPath=System.getProperty("user.dir");
sPath=sPath+"/db.properties";
try {
FileInputStream fin= new FileInputStream(sPath);
Properties prop=new Properties();
prop.load(fin);
System.out.println(prop.getProperty("driver"));
System.out.println(prop.getProperty("url"));
System.out.println(prop.getProperty("user"));
System.out.println(prop.getProperty("pass"));
System.out.println(prop.getProperty("key"));
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
在命令行运行程序( )
unix/linux:什么是硬连接、软连接?
sql:什么是外链接、内链接?
能够放那些修饰符 class ClsName{
能够放那些修饰符 class InnerCls{
}
}
abstract class ClsName {
abstract void aaa();
}
interface ICls {
}
class TestI {
public static void main(String[] args) {
new ClsName();
new ICls();
}
}
什么错误,为何?
class ClsName {
class InnerCls {
void test() {
System.out.println(InnerCls.class);
}
}
}
class TestI {
public static void main(String[] args) {
// 怎么调用test()函数
}
}
找找生成的class文件,看内部类是怎么表示的
class ClsName {
static class InnerCls {
void test() {
System.out.println(InnerCls.class);
}
}
}
class TestI {
public static void main(String[] args) {
// 怎么调用test()函数
}
}
匿名内部类
interface ICls{
void abc();
}
class TestI {
public static void main(String[] args) {
new ICls() {
public void abc() {
// TODO Auto-generated method stub
}
};
}
}
程序=数据结构+算法(求解某个问题的过程或方法)
程序由 数据 及 处理数据的函数组成
链表(单链表、双链表)
哈希表(key键---value值)
无论什么数据结构,数据最终在内存存储形式:顺序存储、链式存储
new String[10]
new String() …… new String()
class ListData {
int a;
String b;
public ListData() {
}
public ListData(int a, String b) {
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
ListData next;//定义一个引用,记录下一个节点地址
public ListData getNext() {
return next;
}
public void setNext(ListData next) {
this.next = next;
}
}
class ds{
public static void main(String[] args) {
ListData lst[]=new ListData[10];//顺序
lst[0]=new ListData();
ListData head=null;
head=new ListData(100, "abc");
ListData yly= new ListData(200, "bca");
head.setNext(yly);
yly.setNext(new ListData(300, "cab"));
//怎么经过head遍历每条数据
while (head!=null) {
System.out.println(head);
head=head.getNext();
}
}
}
运行结果( )
在ListData重写toString()
public String toString() {
// TODO Auto-generated method stub
return "a="+a+",b="+b;
}
再运行程序
C++: STL standard template libaray
java: collections framework
ArrayList 和 LinkedList区别?
顺序存储 链式存储
class ds{
public static void main(String[] args) {
Map<String,Integer> map=new HashMap<String, Integer>();
System.out.println(map.size());
System.out.println(map.get("yangkang"));
}
}
运行结果( )
class ds {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
String str = "abc cba abc nba cba";
String[] str2 = str.split(" ");
System.out.println(str2.length);
for (int i = 0; i < str2.length; i++) {
Integer v = map.get(str2[i]);
if (v == null) {
map.put(str2[i], 1);
} else {
map.put(str2[i], v + 1);
}
}
Set<String> kSet=map.keySet();
for (String string : kSet) {
System.out.println(string+":"+map.get(string));
}
}
}
运行结果( )
实践(2018年11月29日星期四):
1)会员表(memid memname)
会员消费表(id 自动增加字段 消费日期xfrq 消费金额xfje 会员 memid)
统计2018年10月全部会员消费金额、显示会员号、会员名称、消费金额,并按消费金额降序
方法一
查询有消费
union
没有消费的;
方法二
左或右链接查询;
2修改操做数据库的程序,将链接数据库的相关信息写到db.properties
3 写一个函数:统计一个字符串中每一个数字的个数
作的快的继续
4 怎么让程序能执行
insert into tbl(fld1,fld2) select f1,f2 from tbl2 这种格式sql语句
能执行 desc 表名 查看表结构(两我的合做完成)
5 oracle/mysql如何对数据进行分页显示(独立完成)
6 linux实如今凌晨一点自动备份指定文件夹(好比/home)的全部信息(备份文件名称:备份时间.tar.gz ,好比201811291239.tar.gz),并远程复制到另一台linux电脑(两我的合做完成)
提示:写一个脚本(获取时间、tar命令备份、远程复制),而后配置任务计划(crontab)指定执行脚本的时间,远程复制需解决免密登陆问题
7 找一个操做数据库的GUI客户端,能够操做任何数据库