1.简洁好看好用的极简极简教育浏览器主页推荐
2.python代ç 大å
¨ç®åï¼
3.那个阅读神器被下架了?赶紧来收藏这个开源版!
4.Gradle极简入门
5.极简开发,源码源码一键导入swagger,官网即刻开放你的极简极简教育API接口
6.freemind是一款什么软件?
简洁好看好用的浏览器主页推荐
1. 咪咕鱼主页
- 简洁美观,提供多种原创背景选择。源码源码
- 预设常用网址,官网无尽对抗源码方便切换搜索引擎。极简极简教育
- 支持种搜索引擎,源码源码可自定义布局为文字、官网圆圈或图标。极简极简教育
- Logo样式可选,源码源码背景和网址可个性化设置,官网最多自定义个网址。极简极简教育
- 优点:页面清新,源码源码布局灵活,官网具有个性化特色。
- 缺点:需要登录后进行网址设置。
2. 青柠起始页
- 适合极简主义者,界面简洁,搜索框和网址切换流畅。
- 支持背景切换和少量自定义搜索。
- 常用网址较少,需自行收集;自定义位置有限。
- 优点:界面简洁,操作流畅。
- 缺点:常用网址有限,自定义程度不高。
3. 某柠檬主页
- 以动画效果和互动性强的logo吸引用户。
- 搜索引擎多样,国外 bbs 源码网址丰富。
- 界面极简,适合极简爱好者。
- 不能自定义背景。
4. 大马路主页
- 清新风格,个常用网址方便查找。
- 图标设计独特,提供日间和夜间模式背景。
- 搜索引擎选择有限,仅支持百度和谷歌。
5. 小呆导航
- 界面简洁,功能完备,包括自定义背景和网址。
- 源码开放,常被用于其他主页改造。
- 在美观度上可能略逊一筹。
选择浏览器主页时,应考虑个人喜好和实际需求。上述推荐的主页各有特色,可以根据特点找到最适合自己的浏览器主页。
python代ç å¤§å ¨ç®åï¼
pythonæ趣çç¼ç¨ä»£ç
class?Point:
row=0col=0def?__init__(self,?row,?col):self.row=row
self.col=col
def?copy(self):return?Point(row=self.row,?col=self.col)
#åå§æ¡æ¶
import?pygame
import?random
#åå§å
pygame.init()
W=
H=
ROW=
COL=
size=(W,H)
window=pygame.display.set_mode(size)
pygame.display.set_caption('è´ªåè')
bg_color=(,,)
snake_color=(,,)
head=Point(row=int(ROW/2),?col=int(COL/2))
head_color=(0,,)
snakes=[
Point(row=head.row,?col=head.col+1),Point(row=head.row,?col=head.col+2),Point(row=head.row,?col=head.col+3)]
#çæé£ç©
def?gen_food():
while?1:pos=Point(row=random.randint(0,ROW-1),?col=random.randint(0,COL-1))
#
is_coll=False
#æ¯å¦è·è碰ä¸äº
if?head.row==pos.row?and?head.col==pos.col:
is_coll=True#è身å
for?snake?in?snakes:
if?snake.row==pos.row?and?snake.col==pos.col:is_coll=True
break
if?not?is_coll:
breakreturn?pos#å®ä¹åæ
food=gen_food()
food_color=(,,0)
direct='left'#left,right,up,down
#
def?rect(point,?color):
cell_width=W/COLcell_height=H/ROWleft=point.col*cell_widthtop=point.row*cell_heightpygame.draw.rect(window,?color,
(left,?top,?cell_width,?cell_height)
)pass#游æ循ç¯
quit=True
clock=pygame.time.Clock()
while?quit:
#å¤çäºä»¶for?event?in?pygame.event.get():if?event.type==pygame.QUIT:
quit=Falseelif?event.type==pygame.KEYDOWN:
if?event.key==?or?event.key==:if?direct=='left'?or?direct=='right':
direct='up'elif?event.key==?or?event.key==:if?direct?==?'left'?or?direct?==?'right':
direct='down'elif?event.key==?or?event.key==:if?direct?==?'up'?or?direct?==?'down':
direct='left'elif?event.key==?or?event.key==:if?direct?==?'up'?or?direct?==?'down':
direct='right'#åä¸è¥¿eat=(head.row==food.row?and?head.col==food.col)#éæ°äº§çé£ç©if?eat:food?=?gen_food()
#å¤ç身å#1.æåæ¥ç头ï¼æå ¥å°snakesç头ä¸snakes.insert(0,?head.copy())#2.æsnakesçæåä¸ä¸ªå æif?not?eat:snakes.pop()
#移å¨if?direct=='left':head.col-=1
elif?direct=='right':head.col+=1
elif?direct=='up':head.row-=1
elif?direct=='down':head.row+=1
#æ£æµdead=False#1.æå¢if?head.col0?or?head.row0?or?head.col=COL?or?head.row=ROW:dead=True
#2.æèªå·±for?snake?in?snakes:if?head.col==snake.col?and?head.row==snake.row:
dead=Truebreakif?dead:print('æ»äº')
quit=False
#渲æââç»åºæ¥#èæ¯pygame.draw.rect(window,?bg_color,?(0,0,W,H))#è头for?snake?in?snakes:rect(snake,?snake_color)
rect(head,?head_color)rect(food,?food_color)#pygame.display.flip()#设置帧é¢ï¼é度ï¼clock.tick(8)#æ¶å°¾å·¥ä½
è¿æ¯ä¸ä¸ªç®æçè´ªåèç代ç ï¼è½ç¶ç»æç®åï¼ä½æ¯è¯¥æçåè½é½æ¯å®æ´çï¼å¯ç©æ§ä¹ä¸é
æ±pythonæ°æ®æ åå代ç ï¼ä½¿ç¨pythonæ ååæ°æ®ç代ç å¦ä¸ï¼
fromsklearnimportpreprocessing
importnumpyasnp
X=np.array([[1.,-1.,2.],[2.,0.,0.],[0.,1.,-1.]])
X_scaled=preprocessing.scale(X)
print(X_scaled)
pythonå£è¯æ 代ç ç®å```python#Pythonå£è¯æ 代ç foriinrange(1,6):forjinrange(1,i+1):print('*',end='')print('\n')```
æå±ï¼å¦ææ³æ¹åæ çå½¢ç¶ï¼å¯ä»¥å¨ä»£ç ä¸æ·»å æ´å¤çæ§å¶åæ°ï¼å¦å¨æ¯ä¸è¡ä¸æ·»å ä¸åçç©ºæ ¼æ°ï¼ä½¿å¾æ çå½¢ç¶ä¸ä¸æ ·ãåæ¶å¯ä»¥éè¿æ·»å HTMLæ ç¾ï¼ä½¿ç¨CSSæ ·å¼æ¥æ¹åå£è¯æ çé¢è²ãèæ¯åæåççã
个æç®python代ç ï¼æ¿èµ°å³ç¨
Helloï¼å¤§å®¶å¥½ï¼ææ¯ç¨åºæ±ªå°æ~
è½ç¶pythonæ¯ä¸ä¸ªæå ¥é¨çè¯è¨ï¼ä½æ¯å¾å¤äººä¾ç¶è¿æ¯ä¼é®å°åºæä¹æ ·å¦Pythonææå¿«ï¼çæ¡å½ç¶æ¯å®æåç§å°é¡¹ç®ï¼åªæèªå·±å»æ³ä¸åï¼æè®°å¾ä½è§åãæ¬æåçæ¯ä¸ªæç®ä»»å¡ï¼åå¦è å¯ä»¥å°è¯çèªå·±å®ç°ï¼æ¬æåæ ·ä¹æ¯æ®µä»£ç ï¼Pythonå¼åè ä¹å¯ä»¥ççæ¯ä¸æ¯æ没æ³å°çç¨æ³ã
以ä¸æ¹æ³å¯ä»¥æ£æ¥ç»å®å表æ¯ä¸æ¯åå¨éå¤å ç´ ï¼å®ä¼ä½¿ç¨set()å½æ°æ¥ç§»é¤ææéå¤å ç´ ã
ç»å®å ·ä½ç大å°ï¼å®ä¹ä¸ä¸ªå½æ°ä»¥æç §è¿ä¸ªå¤§å°åå²å表ã
è¿ä¸ªæ¹æ³å¯ä»¥å°å¸å°åçå¼å»æï¼ä¾å¦ï¼Falseï¼Noneï¼0ï¼ââï¼ï¼å®ä½¿ç¨filter()å½æ°ã
æ们常ç¨For循ç¯æ¥éåæ个å表ï¼åæ ·æ们ä¹è½æ举å表çç´¢å¼ä¸å¼ã
å¦ä¸ä»£ç 段å¯ä»¥å°æå 好çæ对å表解å¼æ两ç»ä¸åçå ç»ã
该æ¹æ³å°éè¿éå½çæ¹å¼å°å表çåµå¥å±å¼ä¸ºå个å表ã
该æ¹æ³å°è¿å第ä¸ä¸ªå表çå ç´ ï¼ä¸ä¸å¨ç¬¬äºä¸ªå表å ãå¦æåæ¶è¦åé¦ç¬¬äºä¸ªå表ç¬æçå ç´ ï¼è¿éè¦å ä¸å¥set_b.difference(set_a)ã
å¦ä¸ä»£ç åå¯ä»¥ç¨æ¥è®¡ç®æ§è¡ç¹å®ä»£ç æè±è´¹çæ¶é´ã
该ç®æ³ä¼æä¹±å表å ç´ ç顺åºï¼å®ä¸»è¦ä¼éè¿Fisher-Yatesç®æ³å¯¹æ°å表è¿è¡æåºï¼
ä¸éè¦é¢å¤çæä½å°±è½äº¤æ¢ä¸¤ä¸ªåéçå¼ã
以ä¸ï¼æ¯æç®åå举çå个pythonæç®ä»£ç ï¼æ¿èµ°å³ç¨ï¼å¸æå¯¹ä½ ææ帮å©ï¼
pythonæ°æ代ç æåªäºï¼pythonæ°æ代ç æå¦ä¸ï¼
defnot_emptyï¼sï¼ã
returnsandlenï¼sãstripï¼ï¼ï¼0ã
#returnsandsãstripï¼ï¼ã
#å¦æç´æ¥ååsãstripï¼ï¼é£ä¹så¦ææ¯Noneï¼ä¼æ¥éï¼å 为None没æstripæ¹æ³ã
#å¦æsæ¯Noneï¼é£ä¹Noneandä»»ä½å¼é½æ¯Falseï¼ç´æ¥è¿åfalseã
#å¦æséNoneï¼é£ä¹å¤å®sãtripï¼ï¼æ¯å¦ä¸ºç©ºã
ç¸å ³ç®ä»ã
Python解éå¨æäºæ©å±ï¼å¯ä»¥ä½¿ç¨CæC++ï¼æè å ¶ä»å¯ä»¥éè¿Cè°ç¨çè¯è¨ï¼æ©å±æ°çåè½åæ°æ®ç±»åãPythonä¹å¯ç¨äºå¯å®å¶å软件ä¸çæ©å±ç¨åºè¯è¨ãPython丰å¯çæ ååºï¼æä¾äºéç¨äºå个主è¦ç³»ç»å¹³å°çæºç ææºå¨ç ã
å¹´æï¼è¯è¨æµè¡ææ°çç¼è¯å¨Tiobeå°Pythonå å为æå欢è¿çç¼ç¨è¯è¨ï¼å¹´æ¥é¦æ¬¡å°å ¶ç½®äºJavaãCåJavaScriptä¹ä¸ã
è´¨æ°è¡¨ä»£ç ï¼è´¨æ°è¡¨ä»£ç æ¯æç¨ç¼ç¨è¯è¨çæä¸ç³»åè´¨æ°ç代ç ãè´¨æ°æ¯æåªè½è¢«èªèº«å1æ´é¤çèªç¶æ°ï¼å¦2ï¼3ï¼5ï¼7çã
ä¸åçç¼ç¨è¯è¨æä¸åçå®ç°æ¹æ³ï¼æå¯ä»¥ç»ä½ ä¸äºåèã以ä¸æ¯ä¸äºç½ä¸æç´¢å°çè´¨æ°è¡¨ä»£ç 示ä¾ï¼
Cè¯è¨ï¼
#includestdio.hintmain(){ ?inti,j;?printf("2\n");?for(i=3;i=;i+=2)//ä»3å¼å§éåå¥æ°
{ for(j=3;ji;j++)//å¤ææ¯å¦è½è¢«å°äºå®çå¥æ°æ´é¤{ ?if(i%j==0)//å¦æè½æ´é¤ï¼åè·³åºå¾ªç¯
break;
}if(j==i)//å¦æ循ç¯æ£å¸¸ç»æï¼å说ææ¯è´¨æ°ï¼æå°åºæ¥
printf("%d\n",i);}?return0;}
Pythonï¼
#!/usr/bin/python#-*-coding:UTF-8-*-
#è¾åºæå®èå´å çç´ æ°
#ç¨æ·è¾å ¥æ°æ®lower=int(input("è¾å ¥åºé´æå°å¼:"))
upper=int(input("è¾å ¥åºé´æ大å¼:"))
fornuminrange(lower,upper+1):?#ç´ æ°å¤§äº1
ifnum1:foriinrange(2,num):?if(num%i)==0:breakelse:?print(num)
那个阅读神器被下架了?赶紧来收藏这个开源版!
在众多阅读应用中,开源阅读应用始终占据着独特地位。曾经的热门选择——厚墨,因其高颜值、可换源和对用户友好的特点,深受书虫喜爱。然而,bpso源码解释厚墨在经历了一段时间的收费和应用商店下架后,似乎淡出了大众视野。
尽管如此,厚墨的粉丝们并未遗忘其经典版本1.3,这款应用以其出色的界面和功能深受赞誉。现在,一个名为“轻墨”的开源项目重新演绎了厚墨1.3的优点,提供了极简设计和纯粹阅读的体验。轻墨模仿了厚墨的外观和功能,但内部更新,致力于解决旧版本可能遇到的问题。
轻墨不仅易于添加书源,用户可以从GitHub、酷安和吾爱破解等多个平台获取源码。只需粘贴书源链接,验证通过后,就能获得丰富的小说资源。然而,为了保持搜索的流畅性,建议只添加少数几个常用的书源。
在轻墨中阅读体验丝滑,用户可以根据个人喜好调整字体、字号等设置。此外,它还支持夜间模式、章节换源等功能,只需简单操作即可。然而,jeesite框架源码别忘记将找到的书籍添加到书架,避免重复搜索的麻烦。
虽然轻墨的RSS功能与换源类似,但并非所有内容都能直接查看,有时需要通过“打开网页”来访问。为了解决这个问题,提供了一些实用的RSS工具,如RSS Source、播客Feed订阅和RSS+脚本。
总的来说,轻墨作为一款专注于阅读体验的App,以其简洁易用和良好的阅读环境,成为喜欢厚墨或寻找新小说应用的读者的理想选择。GitHub地址供用户下载作者的版本,而书源和更多资源则可以通过蓝奏云获取。
Gradle极简入门
Gradle简介
Gradle是一个基于Apache Ant和Maven理念的项目自动化构建工具,使用Groovy的领域特定语言(DSL)声明项目设置,而非XML。其构建脚本支持Groovy或Kotlin编写,这两种语言均运行在JVM之上。安装步骤
在开始前,熟悉Java或Kotlin是前提。要使用Gradle,需从官网下载gradle.org/releases/,选择最新版本的binary-only压缩包,解压并配置环境变量至bin目录,然后在Terminal中验证安装,通过输入gradle -v检查是文字居中源码否成功。创建Hello World项目
创建新目录,打开Terminal,使用gradle init初始化项目。如果最后显示BUILD SUCCESSFUL,表示项目创建成功,此时可以浏览项目结构,后续会深入介绍。运行项目
运行项目,执行gradle run,项目自带Guava和JUnit库,如有需要,可自行从build.gradle.kts中移除。项目结构
settings.gradle.kts配置项目名称和模块,app是默认模块。build.gradle.kts是项目构建配置文件,包含group、version等信息。src目录包含main和test源码,build.gradle.kts可自定义项目结构。命令与任务
gradle tasks展示所有任务,gradle run运行Application插件的入口类,gradle init用于初始化项目,gradle build构建项目。IntelliJ IDEA导入与配置
导入项目时,打开IntelliJ IDEA,选择项目目录并导入。关于Gradle的配置,主要在File > Settings > Build, Execution, Deployment > Build Tools > Gradle中进行,这里管理Gradle的JVM配置和项目依赖。总结
本文简单介绍了Gradle的安装、项目结构、常用命令、IntelliJ IDEA集成以及基本配置。要深入学习,还需参考Gradle官方文档。极简开发,一键导入swagger,即刻开放你的API接口
swagger是一款广泛使用的接口文档和开发工具,许多接口项目利用其进行维护与自动生成接口文档。当您希望开放API接口时,结合接口大师这款工具,能实现界面化操作和低代码开发,迅速实现接口开放。
接口大师支持一键导入swagger接口。首先,登录管理后台,进入接口管理,选择“导入swagger”。上传您的swagger.json文件,批量或部分选择需要导入的API接口,点击“导入”,完成后您的接口即被导入至接口大师。
导入swagger接口后,可借助接口大师进行更深入的接口管理和开发。在后台界面查看并编辑接口信息,包括接口名称、标题、描述、版本、请求方式和PHP源代码,实现接口的调整与发布。
开发者在前台能看到已发布的接口文档。登录开放平台后,查看应用的接口权限,进行在线接口测试。导入并发布接口后,开发者能直接调用和使用。
总结而言,利用接口大师一键导入swagger接口,即能快速实现API接口开放。通过后台管理,进行接口二次开发和调整,发布后供开发者调用与使用。
freemind是一款什么软件?
FreeMind开发项目组正致力于使其成为一款高效率的工具。FreeMind具有一键展开/折叠功能以及链接跟随操作,因而比MindManager的操作与导航更便捷。Freemind是一个基于java的开放源码脑图软件,支持Windows、Linux和Mac多种操作系统,曾被评为sourceforge 年二月当月软件。如果你也经常感到思维发散,头绪繁多,可以试试脑图软件。Freemind是一款跨平台的、基于GPL协议的自由软件,用Java编写,是一个用来绘制思维导图的软件。其产生的文件格式后缀为.mm 。可用来做笔记,脑图记录,脑力激扬等。
FreeMind 包括了许多让人激动的特性,其中包括扩展性,快捷的一键展开和关闭节点,快速记录思维,多功能的定义格式和快捷键。
由于 FreeMind 使用 Java 编写,支持使用Python编写的扩展插件。另外文件格式是xml的。
优势
1. 导出Flash和HTML格式出色
2. FreeMind 可以导入目录结构
3.简约,占用资源少,启动运行速度快
4. 免费
缺点
1. 无法多个思维中心点展开
2. 部分中文输入法无法在 FreeMind 输入
3. 功能较少,与MS及其他无整合
4. 更新较少,可持续性不高
综合来说:开源免费,界面简单,涵盖基本创作思维导图功能,适合奉行极简主义用户进行简单的思维导图编辑与个人创作。
Freemind优势、缺点有哪些?各位都清楚了吧。更多关于Freemind的常见问题,使用技巧,基础教程的相关内容,小编会持续更新。
源代码影片看点
在现代娱乐作品中,"穿越"这一题材已经成为常见元素,无论是偶像剧还是网络小说,几乎无所不在。即使是最基本的灵魂互换或时空转换,也常常被赋予浪漫或悬疑的色彩。然而,真正专注于科学逻辑和情节铺垫的"穿越"作品却显得稀有,特别是那些将爱情作为核心而非附带目的的剧情。 好莱坞对待"穿越"题材则更为严谨,剧本的质量直接影响了**的走向。《源代码》这部影片的剧本曾被列入"好莱坞剧本黑名单",这本身就显示了其潜在的影响力和制作团队的高水准。导演们在利用科幻元素构建故事时,往往能展现出独特的艺术视角,如《月球》那样,用极简的资源创造出深度和惊喜。 《源代码》延续了这种精巧的布局,通过科幻外壳,编织出紧张悬疑的剧情。**中的棋局步步惊心,既要构思巧妙以吸引观众,又需逻辑严密以避免漏洞。因此,制片方在选择故事线的同时,也强调了主角的多面性和超凡能力,如杰克·吉伦哈尔在片中扮演的角色,从王子到侦探、深情的爱人和反恐专家,他的多变形象无疑增加了**的观赏性和吸引力。 总的来说,"穿越"题材在好莱坞**中并非单纯为了迎合流行,而是需要精心设计和多元化的人物设定,以确保故事的深度和观众的投入。《源代码》的结合便是这种理念的体现,它通过复杂而巧妙的剧情设计,以及主角的多维度演绎,呈现了一部引人入胜的科幻惊悚之作。扩展资料
《源代码》Source Code是由著名导演邓肯·琼斯指导, 杰克·吉伦哈尔/ 维拉·法米加 / 米歇尔·莫娜汉 / 杰弗里·怀特 / 拉塞尔·皮特斯 / 迈克尔·阿登等人主演的一部**。讲述了一位在阿富汗执行任务的美国空军飞行员科特史蒂文斯上尉所经历的一系列惊心动魄的事件。
求Java web增删改查 极简源码
//用户新增
public boolean addUser(Users user){
try {
conn = ConnDB.getConnection();
String sql = "insert into tb_users values(default,?,?,?,?,?,?)";
System.out.println(sql);
ps = conn.prepareStatement(sql);
ps.setInt(1, user.getDepID());
ps.setString(2, user.getUserName());
ps.setString(3, user.getUserPwd());
ps.setString(4, user.getUserCode());
ps.setString(5, user.getUserSex());
ps.setInt(6, user.getUserAge());
if(ps.executeUpdate()==1){
return true;
}
} catch (Exception e) {
e.printStackTrace();
} finally{ //关闭当前页打开的相关对象
ConnDB.close(conn, ps, null);
}
return false;
}
//用户删除
public boolean delUser(int id){
try {
conn = ConnDB.getConnection();
String sql = "delete from tb_users where id = ?";
System.out.println(sql);
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
if(ps.executeUpdate()==1){
return true;
}
} catch (Exception e) {
e.printStackTrace();
} finally{ //关闭当前页打开的相关对象
ConnDB.close(conn, ps, null);
}
return false;
}
//用户编辑
public boolean updateUser(Users user){
try {
conn = ConnDB.getConnection();
String sql = "update tb_users set depID=?,userName=?,userPwd=?,userCode=?,userSex=?,userAge=? where id=?";
System.out.println(user.getDepID()+ user.getUserName()+user.getUserPwd()+user.getUserCode()+user.getUserSex()+user.getUserAge()+user.getId());
ps = conn.prepareStatement(sql);
ps.setInt(1, user.getDepID());
ps.setString(2, user.getUserName());
ps.setString(3, user.getUserPwd());
ps.setString(4, user.getUserCode());
ps.setString(5, user.getUserSex());
ps.setInt(6, user.getUserAge());
ps.setInt(7, user.getId());
if(ps.executeUpdate()==1){
return true;
}
} catch (Exception e) {
e.printStackTrace();
} finally{ //关闭当前页打开的相关对象
ConnDB.close(conn, ps, null);
}
return false;
}
//根据id查询用户
public Users findAllUserById(int id){
Users u = null;
DepDao depd = null;
try {
conn = ConnDB.getConnection();
String sql = "select * from tb_users where id=?";
System.out.println(sql);
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
rs = ps.executeQuery();
if(rs.next()){
depd = new DepDao();
Department dep = depd.findAllDepById(rs.getInt("depID"));
System.out.println(dep.getDepName());
u = new Users();
u.setId(rs.getInt("id"));
u.setDepID(rs.getInt("depID"));
u.setUserName(rs.getString("userName"));
u.setUserPwd(rs.getString("userPwd"));
u.setUserCode(rs.getString("userCode"));
u.setUserSex(rs.getString("userSex"));
u.setUserAge(rs.getInt("userAge"));
u.setDep(dep);
}
} catch (Exception e) {
e.printStackTrace();
} finally{ //关闭当前页打开的相关对象
ConnDB.close(conn, ps, rs);
}
return u;
}
这是我在dao层写的代码,都调用了ConnDB这个类,这个类完成了驱动的注册,及连接数据库的功能,代码如下:
package com.asjy.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnDB {
private static String url = "jdbc:mysql://localhost:/news";
private static String user = "root";
private static String pass = "root";
//1.加载驱动
static{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
System.out.println("驱动加载失败");
}
}
//2.建立数据库连接对象
public static Connection getConnection() throws Exception{
return DriverManager.getConnection(url,user,pass);
}
//3.关闭数据库
public static void close(Connection conn,Statement ps,ResultSet rs){
try {
if(rs!=null){
rs.close();
rs = null;
}
if(ps!=null){
ps.close();
ps = null;
}
if(conn!=null){
conn.close();
conn = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}